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.
- checksums.yaml +7 -0
- data/.gitignore +6 -0
- data/.rspec_status +504 -0
- data/Gemfile +5 -0
- data/Gemfile.lock +88 -0
- data/LICENSE +201 -0
- data/Rakefile +8 -0
- data/flake.lock +835 -0
- data/flake.nix +60 -0
- data/gemset.nix +272 -0
- data/lib/pangea/resources/cloudflare.rb +213 -0
- data/lib/pangea/resources/cloudflare_access_rule/resource.rb +71 -0
- data/lib/pangea/resources/cloudflare_access_rule/types.rb +93 -0
- data/lib/pangea/resources/cloudflare_account/resource.rb +28 -0
- data/lib/pangea/resources/cloudflare_account/types.rb +12 -0
- data/lib/pangea/resources/cloudflare_account_dns_settings/resource.rb +27 -0
- data/lib/pangea/resources/cloudflare_account_dns_settings/types.rb +11 -0
- data/lib/pangea/resources/cloudflare_account_dns_settings_internal_view/resource.rb +27 -0
- data/lib/pangea/resources/cloudflare_account_dns_settings_internal_view/types.rb +11 -0
- data/lib/pangea/resources/cloudflare_account_member/resource.rb +29 -0
- data/lib/pangea/resources/cloudflare_account_member/types.rb +13 -0
- data/lib/pangea/resources/cloudflare_account_subscription/resource.rb +27 -0
- data/lib/pangea/resources/cloudflare_account_subscription/types.rb +11 -0
- data/lib/pangea/resources/cloudflare_account_token/resource.rb +27 -0
- data/lib/pangea/resources/cloudflare_account_token/types.rb +11 -0
- data/lib/pangea/resources/cloudflare_address_map/resource.rb +26 -0
- data/lib/pangea/resources/cloudflare_address_map/types.rb +10 -0
- data/lib/pangea/resources/cloudflare_api_shield/resource.rb +27 -0
- data/lib/pangea/resources/cloudflare_api_shield/types.rb +11 -0
- data/lib/pangea/resources/cloudflare_api_shield_discovery_operation/resource.rb +27 -0
- data/lib/pangea/resources/cloudflare_api_shield_discovery_operation/types.rb +11 -0
- data/lib/pangea/resources/cloudflare_api_shield_operation/resource.rb +30 -0
- data/lib/pangea/resources/cloudflare_api_shield_operation/types.rb +13 -0
- data/lib/pangea/resources/cloudflare_api_shield_operation_schema_validation_settings/resource.rb +27 -0
- data/lib/pangea/resources/cloudflare_api_shield_operation_schema_validation_settings/types.rb +11 -0
- data/lib/pangea/resources/cloudflare_api_shield_schema/resource.rb +30 -0
- data/lib/pangea/resources/cloudflare_api_shield_schema/types.rb +14 -0
- data/lib/pangea/resources/cloudflare_api_shield_schema_validation_settings/resource.rb +27 -0
- data/lib/pangea/resources/cloudflare_api_shield_schema_validation_settings/types.rb +11 -0
- data/lib/pangea/resources/cloudflare_api_token/resource.rb +33 -0
- data/lib/pangea/resources/cloudflare_api_token/types.rb +14 -0
- data/lib/pangea/resources/cloudflare_argo/resource.rb +91 -0
- data/lib/pangea/resources/cloudflare_argo/types.rb +92 -0
- data/lib/pangea/resources/cloudflare_authenticated_origin_pulls/resource.rb +29 -0
- data/lib/pangea/resources/cloudflare_authenticated_origin_pulls/types.rb +13 -0
- data/lib/pangea/resources/cloudflare_authenticated_origin_pulls_certificate/resource.rb +33 -0
- data/lib/pangea/resources/cloudflare_authenticated_origin_pulls_certificate/types.rb +13 -0
- data/lib/pangea/resources/cloudflare_authenticated_origin_pulls_settings/resource.rb +26 -0
- data/lib/pangea/resources/cloudflare_authenticated_origin_pulls_settings/types.rb +10 -0
- data/lib/pangea/resources/cloudflare_bot_management/resource.rb +31 -0
- data/lib/pangea/resources/cloudflare_bot_management/types.rb +15 -0
- data/lib/pangea/resources/cloudflare_byo_ip_prefix/resource.rb +27 -0
- data/lib/pangea/resources/cloudflare_byo_ip_prefix/types.rb +11 -0
- data/lib/pangea/resources/cloudflare_calls_sfu_app/resource.rb +27 -0
- data/lib/pangea/resources/cloudflare_calls_sfu_app/types.rb +11 -0
- data/lib/pangea/resources/cloudflare_calls_turn_app/resource.rb +27 -0
- data/lib/pangea/resources/cloudflare_calls_turn_app/types.rb +11 -0
- data/lib/pangea/resources/cloudflare_certificate_pack/resource.rb +26 -0
- data/lib/pangea/resources/cloudflare_certificate_pack/types.rb +10 -0
- data/lib/pangea/resources/cloudflare_cloud_connector_rules/resource.rb +27 -0
- data/lib/pangea/resources/cloudflare_cloud_connector_rules/types.rb +11 -0
- data/lib/pangea/resources/cloudflare_cloudforce_one_request/resource.rb +27 -0
- data/lib/pangea/resources/cloudflare_cloudforce_one_request/types.rb +11 -0
- data/lib/pangea/resources/cloudflare_cloudforce_one_request_asset/resource.rb +27 -0
- data/lib/pangea/resources/cloudflare_cloudforce_one_request_asset/types.rb +11 -0
- data/lib/pangea/resources/cloudflare_cloudforce_one_request_message/resource.rb +27 -0
- data/lib/pangea/resources/cloudflare_cloudforce_one_request_message/types.rb +11 -0
- data/lib/pangea/resources/cloudflare_cloudforce_one_request_priority/resource.rb +27 -0
- data/lib/pangea/resources/cloudflare_cloudforce_one_request_priority/types.rb +11 -0
- data/lib/pangea/resources/cloudflare_content_scanning/resource.rb +27 -0
- data/lib/pangea/resources/cloudflare_content_scanning/types.rb +11 -0
- data/lib/pangea/resources/cloudflare_content_scanning_expression/resource.rb +27 -0
- data/lib/pangea/resources/cloudflare_content_scanning_expression/types.rb +11 -0
- data/lib/pangea/resources/cloudflare_custom_hostname/resource.rb +158 -0
- data/lib/pangea/resources/cloudflare_custom_hostname/types/ssl_types.rb +145 -0
- data/lib/pangea/resources/cloudflare_custom_hostname/types.rb +107 -0
- data/lib/pangea/resources/cloudflare_custom_hostname_fallback_origin/resource.rb +27 -0
- data/lib/pangea/resources/cloudflare_custom_hostname_fallback_origin/types.rb +11 -0
- data/lib/pangea/resources/cloudflare_custom_pages/resource.rb +27 -0
- data/lib/pangea/resources/cloudflare_custom_pages/types.rb +11 -0
- data/lib/pangea/resources/cloudflare_custom_ssl/resource.rb +36 -0
- data/lib/pangea/resources/cloudflare_custom_ssl/types.rb +16 -0
- data/lib/pangea/resources/cloudflare_d1_database/resource.rb +92 -0
- data/lib/pangea/resources/cloudflare_d1_database/types.rb +110 -0
- data/lib/pangea/resources/cloudflare_dns_firewall/resource.rb +27 -0
- data/lib/pangea/resources/cloudflare_dns_firewall/types.rb +11 -0
- data/lib/pangea/resources/cloudflare_dns_zone_transfers_acl/resource.rb +27 -0
- data/lib/pangea/resources/cloudflare_dns_zone_transfers_acl/types.rb +11 -0
- data/lib/pangea/resources/cloudflare_dns_zone_transfers_incoming/resource.rb +27 -0
- data/lib/pangea/resources/cloudflare_dns_zone_transfers_incoming/types.rb +11 -0
- data/lib/pangea/resources/cloudflare_dns_zone_transfers_outgoing/resource.rb +26 -0
- data/lib/pangea/resources/cloudflare_dns_zone_transfers_outgoing/types.rb +10 -0
- data/lib/pangea/resources/cloudflare_dns_zone_transfers_peer/resource.rb +26 -0
- data/lib/pangea/resources/cloudflare_dns_zone_transfers_peer/types.rb +10 -0
- data/lib/pangea/resources/cloudflare_dns_zone_transfers_tsig/resource.rb +26 -0
- data/lib/pangea/resources/cloudflare_dns_zone_transfers_tsig/types.rb +10 -0
- data/lib/pangea/resources/cloudflare_email_routing_address/resource.rb +26 -0
- data/lib/pangea/resources/cloudflare_email_routing_address/types.rb +10 -0
- data/lib/pangea/resources/cloudflare_email_routing_catch_all/resource.rb +26 -0
- data/lib/pangea/resources/cloudflare_email_routing_catch_all/types.rb +10 -0
- data/lib/pangea/resources/cloudflare_email_routing_dns/resource.rb +27 -0
- data/lib/pangea/resources/cloudflare_email_routing_dns/types.rb +11 -0
- data/lib/pangea/resources/cloudflare_email_routing_rule/resource.rb +26 -0
- data/lib/pangea/resources/cloudflare_email_routing_rule/types.rb +10 -0
- data/lib/pangea/resources/cloudflare_email_routing_settings/resource.rb +26 -0
- data/lib/pangea/resources/cloudflare_email_routing_settings/types.rb +10 -0
- data/lib/pangea/resources/cloudflare_email_security_block_sender/resource.rb +27 -0
- data/lib/pangea/resources/cloudflare_email_security_block_sender/types.rb +11 -0
- data/lib/pangea/resources/cloudflare_email_security_impersonation_registry/resource.rb +27 -0
- data/lib/pangea/resources/cloudflare_email_security_impersonation_registry/types.rb +11 -0
- data/lib/pangea/resources/cloudflare_email_security_trusted_domains/resource.rb +27 -0
- data/lib/pangea/resources/cloudflare_email_security_trusted_domains/types.rb +11 -0
- data/lib/pangea/resources/cloudflare_filter/resource.rb +64 -0
- data/lib/pangea/resources/cloudflare_filter/types.rb +54 -0
- data/lib/pangea/resources/cloudflare_firewall_rule/resource.rb +70 -0
- data/lib/pangea/resources/cloudflare_firewall_rule/types.rb +64 -0
- data/lib/pangea/resources/cloudflare_healthcheck/resource.rb +139 -0
- data/lib/pangea/resources/cloudflare_healthcheck/types.rb +192 -0
- data/lib/pangea/resources/cloudflare_hostname_tls_setting/resource.rb +26 -0
- data/lib/pangea/resources/cloudflare_hostname_tls_setting/types.rb +10 -0
- data/lib/pangea/resources/cloudflare_hyperdrive_config/resource.rb +176 -0
- data/lib/pangea/resources/cloudflare_hyperdrive_config/types/attributes.rb +125 -0
- data/lib/pangea/resources/cloudflare_hyperdrive_config/types/caching.rb +52 -0
- data/lib/pangea/resources/cloudflare_hyperdrive_config/types/enums.rb +37 -0
- data/lib/pangea/resources/cloudflare_hyperdrive_config/types/mtls.rb +52 -0
- data/lib/pangea/resources/cloudflare_hyperdrive_config/types/origin.rb +89 -0
- data/lib/pangea/resources/cloudflare_hyperdrive_config/types.rb +23 -0
- data/lib/pangea/resources/cloudflare_image/resource.rb +27 -0
- data/lib/pangea/resources/cloudflare_image/types.rb +11 -0
- data/lib/pangea/resources/cloudflare_image_variant/resource.rb +26 -0
- data/lib/pangea/resources/cloudflare_image_variant/types.rb +10 -0
- data/lib/pangea/resources/cloudflare_keyless_certificate/resource.rb +26 -0
- data/lib/pangea/resources/cloudflare_keyless_certificate/types.rb +10 -0
- data/lib/pangea/resources/cloudflare_leaked_credential_check/resource.rb +27 -0
- data/lib/pangea/resources/cloudflare_leaked_credential_check/types.rb +11 -0
- data/lib/pangea/resources/cloudflare_leaked_credential_check_rule/resource.rb +27 -0
- data/lib/pangea/resources/cloudflare_leaked_credential_check_rule/types.rb +11 -0
- data/lib/pangea/resources/cloudflare_list/resource.rb +57 -0
- data/lib/pangea/resources/cloudflare_list/types.rb +49 -0
- data/lib/pangea/resources/cloudflare_list_item/resource.rb +130 -0
- data/lib/pangea/resources/cloudflare_list_item/types.rb +183 -0
- data/lib/pangea/resources/cloudflare_load_balancer/resource.rb +97 -0
- data/lib/pangea/resources/cloudflare_load_balancer/types.rb +75 -0
- data/lib/pangea/resources/cloudflare_load_balancer_monitor/resource.rb +78 -0
- data/lib/pangea/resources/cloudflare_load_balancer_monitor/types.rb +62 -0
- data/lib/pangea/resources/cloudflare_load_balancer_pool/resource.rb +78 -0
- data/lib/pangea/resources/cloudflare_load_balancer_pool/types.rb +81 -0
- data/lib/pangea/resources/cloudflare_logpull_retention/resource.rb +27 -0
- data/lib/pangea/resources/cloudflare_logpull_retention/types.rb +11 -0
- data/lib/pangea/resources/cloudflare_logpush_job/resource.rb +40 -0
- data/lib/pangea/resources/cloudflare_logpush_job/types.rb +24 -0
- data/lib/pangea/resources/cloudflare_logpush_ownership_challenge/resource.rb +27 -0
- data/lib/pangea/resources/cloudflare_logpush_ownership_challenge/types.rb +11 -0
- data/lib/pangea/resources/cloudflare_magic_network_monitoring_configuration/resource.rb +27 -0
- data/lib/pangea/resources/cloudflare_magic_network_monitoring_configuration/types.rb +11 -0
- data/lib/pangea/resources/cloudflare_magic_network_monitoring_rule/resource.rb +27 -0
- data/lib/pangea/resources/cloudflare_magic_network_monitoring_rule/types.rb +11 -0
- data/lib/pangea/resources/cloudflare_magic_transit_connector/resource.rb +27 -0
- data/lib/pangea/resources/cloudflare_magic_transit_connector/types.rb +11 -0
- data/lib/pangea/resources/cloudflare_magic_transit_site/resource.rb +27 -0
- data/lib/pangea/resources/cloudflare_magic_transit_site/types.rb +11 -0
- data/lib/pangea/resources/cloudflare_magic_transit_site_acl/resource.rb +27 -0
- data/lib/pangea/resources/cloudflare_magic_transit_site_acl/types.rb +11 -0
- data/lib/pangea/resources/cloudflare_magic_transit_site_lan/resource.rb +27 -0
- data/lib/pangea/resources/cloudflare_magic_transit_site_lan/types.rb +11 -0
- data/lib/pangea/resources/cloudflare_magic_transit_site_wan/resource.rb +27 -0
- data/lib/pangea/resources/cloudflare_magic_transit_site_wan/types.rb +11 -0
- data/lib/pangea/resources/cloudflare_magic_wan_gre_tunnel/resource.rb +27 -0
- data/lib/pangea/resources/cloudflare_magic_wan_gre_tunnel/types.rb +11 -0
- data/lib/pangea/resources/cloudflare_magic_wan_ipsec_tunnel/resource.rb +27 -0
- data/lib/pangea/resources/cloudflare_magic_wan_ipsec_tunnel/types.rb +11 -0
- data/lib/pangea/resources/cloudflare_magic_wan_static_route/resource.rb +27 -0
- data/lib/pangea/resources/cloudflare_magic_wan_static_route/types.rb +11 -0
- data/lib/pangea/resources/cloudflare_managed_transforms/resource.rb +36 -0
- data/lib/pangea/resources/cloudflare_managed_transforms/types.rb +12 -0
- data/lib/pangea/resources/cloudflare_mtls_certificate/resource.rb +34 -0
- data/lib/pangea/resources/cloudflare_mtls_certificate/types.rb +14 -0
- data/lib/pangea/resources/cloudflare_notification_policy/resource.rb +34 -0
- data/lib/pangea/resources/cloudflare_notification_policy/types.rb +18 -0
- data/lib/pangea/resources/cloudflare_notification_policy_webhooks/resource.rb +27 -0
- data/lib/pangea/resources/cloudflare_notification_policy_webhooks/types.rb +11 -0
- data/lib/pangea/resources/cloudflare_observatory_scheduled_test/resource.rb +27 -0
- data/lib/pangea/resources/cloudflare_observatory_scheduled_test/types.rb +11 -0
- data/lib/pangea/resources/cloudflare_organization/resource.rb +27 -0
- data/lib/pangea/resources/cloudflare_organization/types.rb +11 -0
- data/lib/pangea/resources/cloudflare_organization_profile/resource.rb +27 -0
- data/lib/pangea/resources/cloudflare_organization_profile/types.rb +11 -0
- data/lib/pangea/resources/cloudflare_origin_ca_certificate/resource.rb +97 -0
- data/lib/pangea/resources/cloudflare_origin_ca_certificate/types.rb +125 -0
- data/lib/pangea/resources/cloudflare_page_rule/resource.rb +78 -0
- data/lib/pangea/resources/cloudflare_page_rule/types.rb +71 -0
- data/lib/pangea/resources/cloudflare_page_shield_policy/resource.rb +27 -0
- data/lib/pangea/resources/cloudflare_page_shield_policy/types.rb +11 -0
- data/lib/pangea/resources/cloudflare_pages_domain/resource.rb +28 -0
- data/lib/pangea/resources/cloudflare_pages_domain/types.rb +12 -0
- data/lib/pangea/resources/cloudflare_pages_project/resource/deployment_config.rb +80 -0
- data/lib/pangea/resources/cloudflare_pages_project/resource/main.rb +75 -0
- data/lib/pangea/resources/cloudflare_pages_project/resource.rb +19 -0
- data/lib/pangea/resources/cloudflare_pages_project/types/attributes.rb +51 -0
- data/lib/pangea/resources/cloudflare_pages_project/types/bindings.rb +38 -0
- data/lib/pangea/resources/cloudflare_pages_project/types/build_config.rb +55 -0
- data/lib/pangea/resources/cloudflare_pages_project/types/deployment_config.rb +83 -0
- data/lib/pangea/resources/cloudflare_pages_project/types.rb +27 -0
- data/lib/pangea/resources/cloudflare_queue/resource.rb +108 -0
- data/lib/pangea/resources/cloudflare_queue/types.rb +132 -0
- data/lib/pangea/resources/cloudflare_queue_consumer/resource.rb +31 -0
- data/lib/pangea/resources/cloudflare_queue_consumer/types.rb +15 -0
- data/lib/pangea/resources/cloudflare_r2_bucket/resource.rb +91 -0
- data/lib/pangea/resources/cloudflare_r2_bucket/types.rb +101 -0
- data/lib/pangea/resources/cloudflare_r2_bucket_cors/resource.rb +130 -0
- data/lib/pangea/resources/cloudflare_r2_bucket_cors/types/attributes.rb +105 -0
- data/lib/pangea/resources/cloudflare_r2_bucket_cors/types/cors_allowed.rb +59 -0
- data/lib/pangea/resources/cloudflare_r2_bucket_cors/types/cors_method.rb +34 -0
- data/lib/pangea/resources/cloudflare_r2_bucket_cors/types/cors_rule.rb +74 -0
- data/lib/pangea/resources/cloudflare_r2_bucket_cors/types.rb +22 -0
- data/lib/pangea/resources/cloudflare_r2_bucket_event_notification/resource.rb +31 -0
- data/lib/pangea/resources/cloudflare_r2_bucket_event_notification/types.rb +15 -0
- data/lib/pangea/resources/cloudflare_r2_bucket_lifecycle/resource.rb +31 -0
- data/lib/pangea/resources/cloudflare_r2_bucket_lifecycle/types.rb +26 -0
- data/lib/pangea/resources/cloudflare_r2_bucket_lock/resource.rb +29 -0
- data/lib/pangea/resources/cloudflare_r2_bucket_lock/types.rb +13 -0
- data/lib/pangea/resources/cloudflare_r2_bucket_sippy/resource.rb +26 -0
- data/lib/pangea/resources/cloudflare_r2_bucket_sippy/types.rb +10 -0
- data/lib/pangea/resources/cloudflare_r2_custom_domain/resource.rb +28 -0
- data/lib/pangea/resources/cloudflare_r2_custom_domain/types.rb +12 -0
- data/lib/pangea/resources/cloudflare_r2_managed_domain/resource.rb +26 -0
- data/lib/pangea/resources/cloudflare_r2_managed_domain/types.rb +10 -0
- data/lib/pangea/resources/cloudflare_rate_limit/resource.rb +129 -0
- data/lib/pangea/resources/cloudflare_rate_limit/types.rb +143 -0
- data/lib/pangea/resources/cloudflare_record/resource.rb +91 -0
- data/lib/pangea/resources/cloudflare_record/types.rb +114 -0
- data/lib/pangea/resources/cloudflare_regional_hostname/resource.rb +27 -0
- data/lib/pangea/resources/cloudflare_regional_hostname/types.rb +11 -0
- data/lib/pangea/resources/cloudflare_regional_tiered_cache/resource.rb +82 -0
- data/lib/pangea/resources/cloudflare_regional_tiered_cache/types.rb +73 -0
- data/lib/pangea/resources/cloudflare_registrar_domain/resource.rb +27 -0
- data/lib/pangea/resources/cloudflare_registrar_domain/types.rb +11 -0
- data/lib/pangea/resources/cloudflare_ruleset/resource.rb +113 -0
- data/lib/pangea/resources/cloudflare_ruleset/types/ruleset_rule.rb +84 -0
- data/lib/pangea/resources/cloudflare_ruleset/types.rb +155 -0
- data/lib/pangea/resources/cloudflare_schema_validation_operation_settings/resource.rb +27 -0
- data/lib/pangea/resources/cloudflare_schema_validation_operation_settings/types.rb +11 -0
- data/lib/pangea/resources/cloudflare_schema_validation_schemas/resource.rb +27 -0
- data/lib/pangea/resources/cloudflare_schema_validation_schemas/types.rb +11 -0
- data/lib/pangea/resources/cloudflare_schema_validation_settings/resource.rb +27 -0
- data/lib/pangea/resources/cloudflare_schema_validation_settings/types.rb +11 -0
- data/lib/pangea/resources/cloudflare_snippet/resource.rb +27 -0
- data/lib/pangea/resources/cloudflare_snippet/types.rb +11 -0
- data/lib/pangea/resources/cloudflare_snippet_rules/resource.rb +27 -0
- data/lib/pangea/resources/cloudflare_snippet_rules/types.rb +11 -0
- data/lib/pangea/resources/cloudflare_spectrum_application/resource.rb +122 -0
- data/lib/pangea/resources/cloudflare_spectrum_application/types.rb +147 -0
- data/lib/pangea/resources/cloudflare_static_route/resource.rb +119 -0
- data/lib/pangea/resources/cloudflare_static_route/types.rb +131 -0
- data/lib/pangea/resources/cloudflare_stream/resource.rb +35 -0
- data/lib/pangea/resources/cloudflare_stream/types.rb +15 -0
- data/lib/pangea/resources/cloudflare_stream_audio_track/resource.rb +27 -0
- data/lib/pangea/resources/cloudflare_stream_audio_track/types.rb +11 -0
- data/lib/pangea/resources/cloudflare_stream_caption_language/resource.rb +27 -0
- data/lib/pangea/resources/cloudflare_stream_caption_language/types.rb +11 -0
- data/lib/pangea/resources/cloudflare_stream_download/resource.rb +27 -0
- data/lib/pangea/resources/cloudflare_stream_download/types.rb +11 -0
- data/lib/pangea/resources/cloudflare_stream_key/resource.rb +27 -0
- data/lib/pangea/resources/cloudflare_stream_key/types.rb +11 -0
- data/lib/pangea/resources/cloudflare_stream_live_input/resource.rb +27 -0
- data/lib/pangea/resources/cloudflare_stream_live_input/types.rb +11 -0
- data/lib/pangea/resources/cloudflare_stream_watermark/resource.rb +27 -0
- data/lib/pangea/resources/cloudflare_stream_watermark/types.rb +11 -0
- data/lib/pangea/resources/cloudflare_stream_webhook/resource.rb +27 -0
- data/lib/pangea/resources/cloudflare_stream_webhook/types.rb +11 -0
- data/lib/pangea/resources/cloudflare_tiered_cache/resource.rb +83 -0
- data/lib/pangea/resources/cloudflare_tiered_cache/types.rb +74 -0
- data/lib/pangea/resources/cloudflare_total_tls/resource.rb +26 -0
- data/lib/pangea/resources/cloudflare_total_tls/types.rb +10 -0
- data/lib/pangea/resources/cloudflare_turnstile_widget/resource.rb +34 -0
- data/lib/pangea/resources/cloudflare_turnstile_widget/types.rb +15 -0
- data/lib/pangea/resources/cloudflare_url_normalization_settings/resource.rb +27 -0
- data/lib/pangea/resources/cloudflare_url_normalization_settings/types.rb +11 -0
- data/lib/pangea/resources/cloudflare_user/resource.rb +27 -0
- data/lib/pangea/resources/cloudflare_user/types.rb +11 -0
- data/lib/pangea/resources/cloudflare_user_agent_blocking_rule/resource.rb +27 -0
- data/lib/pangea/resources/cloudflare_user_agent_blocking_rule/types.rb +11 -0
- data/lib/pangea/resources/cloudflare_waiting_room/resource.rb +122 -0
- data/lib/pangea/resources/cloudflare_waiting_room/types.rb +171 -0
- data/lib/pangea/resources/cloudflare_waiting_room_event/resource.rb +118 -0
- data/lib/pangea/resources/cloudflare_waiting_room_event/types.rb +153 -0
- data/lib/pangea/resources/cloudflare_waiting_room_rules/resource.rb +40 -0
- data/lib/pangea/resources/cloudflare_waiting_room_rules/types.rb +32 -0
- data/lib/pangea/resources/cloudflare_waiting_room_settings/resource.rb +27 -0
- data/lib/pangea/resources/cloudflare_waiting_room_settings/types.rb +11 -0
- data/lib/pangea/resources/cloudflare_web3_hostname/resource.rb +27 -0
- data/lib/pangea/resources/cloudflare_web3_hostname/types.rb +11 -0
- data/lib/pangea/resources/cloudflare_web_analytics_rule/resource.rb +27 -0
- data/lib/pangea/resources/cloudflare_web_analytics_rule/types.rb +11 -0
- data/lib/pangea/resources/cloudflare_web_analytics_site/resource.rb +33 -0
- data/lib/pangea/resources/cloudflare_web_analytics_site/types.rb +13 -0
- data/lib/pangea/resources/cloudflare_worker/resource.rb +27 -0
- data/lib/pangea/resources/cloudflare_worker/types.rb +11 -0
- data/lib/pangea/resources/cloudflare_worker_route/resource.rb +62 -0
- data/lib/pangea/resources/cloudflare_worker_route/types.rb +50 -0
- data/lib/pangea/resources/cloudflare_worker_script/resource.rb +90 -0
- data/lib/pangea/resources/cloudflare_worker_script/types.rb +109 -0
- data/lib/pangea/resources/cloudflare_worker_version/resource.rb +27 -0
- data/lib/pangea/resources/cloudflare_worker_version/types.rb +11 -0
- data/lib/pangea/resources/cloudflare_workers_cron_trigger/resource.rb +94 -0
- data/lib/pangea/resources/cloudflare_workers_cron_trigger/types.rb +102 -0
- data/lib/pangea/resources/cloudflare_workers_custom_domain/resource.rb +93 -0
- data/lib/pangea/resources/cloudflare_workers_custom_domain/types.rb +93 -0
- data/lib/pangea/resources/cloudflare_workers_deployment/resource.rb +28 -0
- data/lib/pangea/resources/cloudflare_workers_deployment/types.rb +12 -0
- data/lib/pangea/resources/cloudflare_workers_for_platforms_dispatch_namespace/resource.rb +27 -0
- data/lib/pangea/resources/cloudflare_workers_for_platforms_dispatch_namespace/types.rb +11 -0
- data/lib/pangea/resources/cloudflare_workers_kv/resource.rb +98 -0
- data/lib/pangea/resources/cloudflare_workers_kv/types.rb +103 -0
- data/lib/pangea/resources/cloudflare_workers_kv_namespace/resource.rb +84 -0
- data/lib/pangea/resources/cloudflare_workers_kv_namespace/types.rb +74 -0
- data/lib/pangea/resources/cloudflare_workers_script_subdomain/resource.rb +27 -0
- data/lib/pangea/resources/cloudflare_workers_script_subdomain/types.rb +11 -0
- data/lib/pangea/resources/cloudflare_workflow/resource.rb +27 -0
- data/lib/pangea/resources/cloudflare_workflow/types.rb +11 -0
- data/lib/pangea/resources/cloudflare_zero_trust_access_application/block_builders.rb +116 -0
- data/lib/pangea/resources/cloudflare_zero_trust_access_application/resource.rb +161 -0
- data/lib/pangea/resources/cloudflare_zero_trust_access_application/types/attributes.rb +102 -0
- data/lib/pangea/resources/cloudflare_zero_trust_access_application/types/cors_headers.rb +37 -0
- data/lib/pangea/resources/cloudflare_zero_trust_access_application/types/destination.rb +37 -0
- data/lib/pangea/resources/cloudflare_zero_trust_access_application/types/enums.rb +31 -0
- data/lib/pangea/resources/cloudflare_zero_trust_access_application/types/footer_link.rb +31 -0
- data/lib/pangea/resources/cloudflare_zero_trust_access_application/types/landing_page_design.rb +34 -0
- data/lib/pangea/resources/cloudflare_zero_trust_access_application/types/saas_app.rb +44 -0
- data/lib/pangea/resources/cloudflare_zero_trust_access_application/types/scim_config.rb +35 -0
- data/lib/pangea/resources/cloudflare_zero_trust_access_application/types.rb +26 -0
- data/lib/pangea/resources/cloudflare_zero_trust_access_custom_page/resource.rb +26 -0
- data/lib/pangea/resources/cloudflare_zero_trust_access_custom_page/types.rb +10 -0
- data/lib/pangea/resources/cloudflare_zero_trust_access_group/resource.rb +31 -0
- data/lib/pangea/resources/cloudflare_zero_trust_access_group/types.rb +15 -0
- data/lib/pangea/resources/cloudflare_zero_trust_access_identity_provider/resource.rb +31 -0
- data/lib/pangea/resources/cloudflare_zero_trust_access_identity_provider/types.rb +15 -0
- data/lib/pangea/resources/cloudflare_zero_trust_access_infrastructure_target/resource.rb +26 -0
- data/lib/pangea/resources/cloudflare_zero_trust_access_infrastructure_target/types.rb +10 -0
- data/lib/pangea/resources/cloudflare_zero_trust_access_key_configuration/resource.rb +26 -0
- data/lib/pangea/resources/cloudflare_zero_trust_access_key_configuration/types.rb +10 -0
- data/lib/pangea/resources/cloudflare_zero_trust_access_mtls_certificate/resource.rb +26 -0
- data/lib/pangea/resources/cloudflare_zero_trust_access_mtls_certificate/types.rb +10 -0
- data/lib/pangea/resources/cloudflare_zero_trust_access_mtls_hostname_settings/resource.rb +26 -0
- data/lib/pangea/resources/cloudflare_zero_trust_access_mtls_hostname_settings/types.rb +10 -0
- data/lib/pangea/resources/cloudflare_zero_trust_access_policy/resource.rb +39 -0
- data/lib/pangea/resources/cloudflare_zero_trust_access_policy/types.rb +23 -0
- data/lib/pangea/resources/cloudflare_zero_trust_access_service_token/resource.rb +26 -0
- data/lib/pangea/resources/cloudflare_zero_trust_access_service_token/types.rb +10 -0
- data/lib/pangea/resources/cloudflare_zero_trust_access_short_lived_certificate/resource.rb +26 -0
- data/lib/pangea/resources/cloudflare_zero_trust_access_short_lived_certificate/types.rb +10 -0
- data/lib/pangea/resources/cloudflare_zero_trust_access_tag/resource.rb +26 -0
- data/lib/pangea/resources/cloudflare_zero_trust_access_tag/types.rb +10 -0
- data/lib/pangea/resources/cloudflare_zero_trust_device_custom_profile/resource.rb +26 -0
- data/lib/pangea/resources/cloudflare_zero_trust_device_custom_profile/types.rb +10 -0
- data/lib/pangea/resources/cloudflare_zero_trust_device_custom_profile_local_domain_fallback/resource.rb +26 -0
- data/lib/pangea/resources/cloudflare_zero_trust_device_custom_profile_local_domain_fallback/types.rb +10 -0
- data/lib/pangea/resources/cloudflare_zero_trust_device_default_profile/resource.rb +26 -0
- data/lib/pangea/resources/cloudflare_zero_trust_device_default_profile/types.rb +10 -0
- data/lib/pangea/resources/cloudflare_zero_trust_device_default_profile_certificates/resource.rb +26 -0
- data/lib/pangea/resources/cloudflare_zero_trust_device_default_profile_certificates/types.rb +10 -0
- data/lib/pangea/resources/cloudflare_zero_trust_device_default_profile_local_domain_fallback/resource.rb +26 -0
- data/lib/pangea/resources/cloudflare_zero_trust_device_default_profile_local_domain_fallback/types.rb +10 -0
- data/lib/pangea/resources/cloudflare_zero_trust_device_managed_networks/resource.rb +26 -0
- data/lib/pangea/resources/cloudflare_zero_trust_device_managed_networks/types.rb +10 -0
- data/lib/pangea/resources/cloudflare_zero_trust_device_posture_integration/resource.rb +26 -0
- data/lib/pangea/resources/cloudflare_zero_trust_device_posture_integration/types.rb +10 -0
- data/lib/pangea/resources/cloudflare_zero_trust_device_posture_rule/resource.rb +26 -0
- data/lib/pangea/resources/cloudflare_zero_trust_device_posture_rule/types.rb +10 -0
- data/lib/pangea/resources/cloudflare_zero_trust_device_settings/resource.rb +26 -0
- data/lib/pangea/resources/cloudflare_zero_trust_device_settings/types.rb +10 -0
- data/lib/pangea/resources/cloudflare_zero_trust_dex_test/resource.rb +26 -0
- data/lib/pangea/resources/cloudflare_zero_trust_dex_test/types.rb +10 -0
- data/lib/pangea/resources/cloudflare_zero_trust_dlp_custom_entry/resource.rb +26 -0
- data/lib/pangea/resources/cloudflare_zero_trust_dlp_custom_entry/types.rb +10 -0
- data/lib/pangea/resources/cloudflare_zero_trust_dlp_custom_profile/resource.rb +26 -0
- data/lib/pangea/resources/cloudflare_zero_trust_dlp_custom_profile/types.rb +10 -0
- data/lib/pangea/resources/cloudflare_zero_trust_dlp_dataset/resource.rb +26 -0
- data/lib/pangea/resources/cloudflare_zero_trust_dlp_dataset/types.rb +10 -0
- data/lib/pangea/resources/cloudflare_zero_trust_dlp_entry/resource.rb +26 -0
- data/lib/pangea/resources/cloudflare_zero_trust_dlp_entry/types.rb +10 -0
- data/lib/pangea/resources/cloudflare_zero_trust_dlp_integration_entry/resource.rb +26 -0
- data/lib/pangea/resources/cloudflare_zero_trust_dlp_integration_entry/types.rb +10 -0
- data/lib/pangea/resources/cloudflare_zero_trust_dlp_predefined_entry/resource.rb +26 -0
- data/lib/pangea/resources/cloudflare_zero_trust_dlp_predefined_entry/types.rb +10 -0
- data/lib/pangea/resources/cloudflare_zero_trust_dlp_predefined_profile/resource.rb +26 -0
- data/lib/pangea/resources/cloudflare_zero_trust_dlp_predefined_profile/types.rb +10 -0
- data/lib/pangea/resources/cloudflare_zero_trust_dns_location/resource.rb +26 -0
- data/lib/pangea/resources/cloudflare_zero_trust_dns_location/types.rb +10 -0
- data/lib/pangea/resources/cloudflare_zero_trust_gateway_certificate/resource.rb +26 -0
- data/lib/pangea/resources/cloudflare_zero_trust_gateway_certificate/types.rb +10 -0
- data/lib/pangea/resources/cloudflare_zero_trust_gateway_logging/resource.rb +26 -0
- data/lib/pangea/resources/cloudflare_zero_trust_gateway_logging/types.rb +10 -0
- data/lib/pangea/resources/cloudflare_zero_trust_gateway_policy/resource.rb +34 -0
- data/lib/pangea/resources/cloudflare_zero_trust_gateway_policy/types.rb +18 -0
- data/lib/pangea/resources/cloudflare_zero_trust_gateway_proxy_endpoint/resource.rb +26 -0
- data/lib/pangea/resources/cloudflare_zero_trust_gateway_proxy_endpoint/types.rb +10 -0
- data/lib/pangea/resources/cloudflare_zero_trust_gateway_settings/resource.rb +26 -0
- data/lib/pangea/resources/cloudflare_zero_trust_gateway_settings/types.rb +10 -0
- data/lib/pangea/resources/cloudflare_zero_trust_list/resource.rb +26 -0
- data/lib/pangea/resources/cloudflare_zero_trust_list/types.rb +10 -0
- data/lib/pangea/resources/cloudflare_zero_trust_network_hostname_route/resource.rb +26 -0
- data/lib/pangea/resources/cloudflare_zero_trust_network_hostname_route/types.rb +10 -0
- data/lib/pangea/resources/cloudflare_zero_trust_organization/resource.rb +26 -0
- data/lib/pangea/resources/cloudflare_zero_trust_organization/types.rb +10 -0
- data/lib/pangea/resources/cloudflare_zero_trust_risk_behavior/resource.rb +26 -0
- data/lib/pangea/resources/cloudflare_zero_trust_risk_behavior/types.rb +10 -0
- data/lib/pangea/resources/cloudflare_zero_trust_risk_scoring_integration/resource.rb +26 -0
- data/lib/pangea/resources/cloudflare_zero_trust_risk_scoring_integration/types.rb +10 -0
- data/lib/pangea/resources/cloudflare_zero_trust_tunnel_cloudflared/resource.rb +33 -0
- data/lib/pangea/resources/cloudflare_zero_trust_tunnel_cloudflared/types.rb +13 -0
- data/lib/pangea/resources/cloudflare_zero_trust_tunnel_cloudflared_config/resource.rb +28 -0
- data/lib/pangea/resources/cloudflare_zero_trust_tunnel_cloudflared_config/types.rb +12 -0
- data/lib/pangea/resources/cloudflare_zero_trust_tunnel_cloudflared_route/resource.rb +30 -0
- data/lib/pangea/resources/cloudflare_zero_trust_tunnel_cloudflared_route/types.rb +14 -0
- data/lib/pangea/resources/cloudflare_zero_trust_tunnel_cloudflared_virtual_network/resource.rb +26 -0
- data/lib/pangea/resources/cloudflare_zero_trust_tunnel_cloudflared_virtual_network/types.rb +10 -0
- data/lib/pangea/resources/cloudflare_zero_trust_tunnel_warp_connector/resource.rb +26 -0
- data/lib/pangea/resources/cloudflare_zero_trust_tunnel_warp_connector/types.rb +10 -0
- data/lib/pangea/resources/cloudflare_zone/resource.rb +71 -0
- data/lib/pangea/resources/cloudflare_zone/types.rb +62 -0
- data/lib/pangea/resources/cloudflare_zone_cache_reserve/resource.rb +27 -0
- data/lib/pangea/resources/cloudflare_zone_cache_reserve/types.rb +11 -0
- data/lib/pangea/resources/cloudflare_zone_cache_variants/resource.rb +27 -0
- data/lib/pangea/resources/cloudflare_zone_cache_variants/types.rb +11 -0
- data/lib/pangea/resources/cloudflare_zone_dns_settings/resource.rb +27 -0
- data/lib/pangea/resources/cloudflare_zone_dns_settings/types.rb +11 -0
- data/lib/pangea/resources/cloudflare_zone_dnssec/resource.rb +96 -0
- data/lib/pangea/resources/cloudflare_zone_dnssec/types.rb +81 -0
- data/lib/pangea/resources/cloudflare_zone_hold/resource.rb +26 -0
- data/lib/pangea/resources/cloudflare_zone_hold/types.rb +10 -0
- data/lib/pangea/resources/cloudflare_zone_lockdown/resource.rb +27 -0
- data/lib/pangea/resources/cloudflare_zone_lockdown/types.rb +11 -0
- data/lib/pangea/resources/cloudflare_zone_settings_override/resource.rb +80 -0
- data/lib/pangea/resources/cloudflare_zone_settings_override/types.rb +64 -0
- data/lib/pangea/resources/cloudflare_zone_subscription/resource.rb +26 -0
- data/lib/pangea/resources/cloudflare_zone_subscription/types.rb +10 -0
- data/lib/pangea/resources/types/cloudflare/core.rb +130 -0
- data/lib/pangea/resources/types/cloudflare/load_balancing.rb +104 -0
- data/lib/pangea/resources/types/cloudflare/security.rb +107 -0
- data/lib/pangea/resources/types/cloudflare/workers.rb +60 -0
- data/lib/pangea-cloudflare/version.rb +5 -0
- data/lib/pangea-cloudflare.rb +215 -0
- data/pangea-cloudflare.gemspec +33 -0
- 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)
|