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
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
require 'pangea/resources/base'
|
|
3
|
+
require 'pangea/resources/reference'
|
|
4
|
+
require 'pangea/resources/cloudflare_zero_trust_network_hostname_route/types'
|
|
5
|
+
require 'pangea/resource_registry'
|
|
6
|
+
|
|
7
|
+
module Pangea::Resources
|
|
8
|
+
module CloudflareZeroTrustNetworkHostnameRoute
|
|
9
|
+
def cloudflare_zero_trust_network_hostname_route(name, attributes = {})
|
|
10
|
+
attrs = Cloudflare::Types::ZeroTrustNetworkHostnameRouteAttributes.new(attributes)
|
|
11
|
+
resource(:cloudflare_zero_trust_network_hostname_route, name) do
|
|
12
|
+
account_id attrs.account_id
|
|
13
|
+
end
|
|
14
|
+
ResourceReference.new(
|
|
15
|
+
type: 'cloudflare_zero_trust_network_hostname_route',
|
|
16
|
+
name: name,
|
|
17
|
+
resource_attributes: attrs.to_h,
|
|
18
|
+
outputs: { id: "${cloudflare_zero_trust_network_hostname_route.\#{name}.id}" }
|
|
19
|
+
)
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
module Cloudflare
|
|
23
|
+
include CloudflareZeroTrustNetworkHostnameRoute
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
Pangea::ResourceRegistry.register_module(Pangea::Resources::Cloudflare)
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
require 'dry-struct'
|
|
3
|
+
require 'pangea/resources/types'
|
|
4
|
+
|
|
5
|
+
module Pangea::Resources::Cloudflare::Types
|
|
6
|
+
class ZeroTrustNetworkHostnameRouteAttributes < Dry::Struct
|
|
7
|
+
transform_keys(&:to_sym)
|
|
8
|
+
attribute :account_id, ::Pangea::Resources::Types::CloudflareAccountId
|
|
9
|
+
end
|
|
10
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
require 'pangea/resources/base'
|
|
3
|
+
require 'pangea/resources/reference'
|
|
4
|
+
require 'pangea/resources/cloudflare_zero_trust_organization/types'
|
|
5
|
+
require 'pangea/resource_registry'
|
|
6
|
+
|
|
7
|
+
module Pangea::Resources
|
|
8
|
+
module CloudflareZeroTrustOrganization
|
|
9
|
+
def cloudflare_zero_trust_organization(name, attributes = {})
|
|
10
|
+
attrs = Cloudflare::Types::ZeroTrustOrganizationAttributes.new(attributes)
|
|
11
|
+
resource(:cloudflare_zero_trust_organization, name) do
|
|
12
|
+
account_id attrs.account_id
|
|
13
|
+
end
|
|
14
|
+
ResourceReference.new(
|
|
15
|
+
type: 'cloudflare_zero_trust_organization',
|
|
16
|
+
name: name,
|
|
17
|
+
resource_attributes: attrs.to_h,
|
|
18
|
+
outputs: { id: "${cloudflare_zero_trust_organization.\#{name}.id}" }
|
|
19
|
+
)
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
module Cloudflare
|
|
23
|
+
include CloudflareZeroTrustOrganization
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
Pangea::ResourceRegistry.register_module(Pangea::Resources::Cloudflare)
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
require 'dry-struct'
|
|
3
|
+
require 'pangea/resources/types'
|
|
4
|
+
|
|
5
|
+
module Pangea::Resources::Cloudflare::Types
|
|
6
|
+
class ZeroTrustOrganizationAttributes < Dry::Struct
|
|
7
|
+
transform_keys(&:to_sym)
|
|
8
|
+
attribute :account_id, ::Pangea::Resources::Types::CloudflareAccountId
|
|
9
|
+
end
|
|
10
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
require 'pangea/resources/base'
|
|
3
|
+
require 'pangea/resources/reference'
|
|
4
|
+
require 'pangea/resources/cloudflare_zero_trust_risk_behavior/types'
|
|
5
|
+
require 'pangea/resource_registry'
|
|
6
|
+
|
|
7
|
+
module Pangea::Resources
|
|
8
|
+
module CloudflareZeroTrustRiskBehavior
|
|
9
|
+
def cloudflare_zero_trust_risk_behavior(name, attributes = {})
|
|
10
|
+
attrs = Cloudflare::Types::ZeroTrustRiskBehaviorAttributes.new(attributes)
|
|
11
|
+
resource(:cloudflare_zero_trust_risk_behavior, name) do
|
|
12
|
+
account_id attrs.account_id
|
|
13
|
+
end
|
|
14
|
+
ResourceReference.new(
|
|
15
|
+
type: 'cloudflare_zero_trust_risk_behavior',
|
|
16
|
+
name: name,
|
|
17
|
+
resource_attributes: attrs.to_h,
|
|
18
|
+
outputs: { id: "${cloudflare_zero_trust_risk_behavior.\#{name}.id}" }
|
|
19
|
+
)
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
module Cloudflare
|
|
23
|
+
include CloudflareZeroTrustRiskBehavior
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
Pangea::ResourceRegistry.register_module(Pangea::Resources::Cloudflare)
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
require 'dry-struct'
|
|
3
|
+
require 'pangea/resources/types'
|
|
4
|
+
|
|
5
|
+
module Pangea::Resources::Cloudflare::Types
|
|
6
|
+
class ZeroTrustRiskBehaviorAttributes < Dry::Struct
|
|
7
|
+
transform_keys(&:to_sym)
|
|
8
|
+
attribute :account_id, ::Pangea::Resources::Types::CloudflareAccountId
|
|
9
|
+
end
|
|
10
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
require 'pangea/resources/base'
|
|
3
|
+
require 'pangea/resources/reference'
|
|
4
|
+
require 'pangea/resources/cloudflare_zero_trust_risk_scoring_integration/types'
|
|
5
|
+
require 'pangea/resource_registry'
|
|
6
|
+
|
|
7
|
+
module Pangea::Resources
|
|
8
|
+
module CloudflareZeroTrustRiskScoringIntegration
|
|
9
|
+
def cloudflare_zero_trust_risk_scoring_integration(name, attributes = {})
|
|
10
|
+
attrs = Cloudflare::Types::ZeroTrustRiskScoringIntegrationAttributes.new(attributes)
|
|
11
|
+
resource(:cloudflare_zero_trust_risk_scoring_integration, name) do
|
|
12
|
+
account_id attrs.account_id
|
|
13
|
+
end
|
|
14
|
+
ResourceReference.new(
|
|
15
|
+
type: 'cloudflare_zero_trust_risk_scoring_integration',
|
|
16
|
+
name: name,
|
|
17
|
+
resource_attributes: attrs.to_h,
|
|
18
|
+
outputs: { id: "${cloudflare_zero_trust_risk_scoring_integration.\#{name}.id}" }
|
|
19
|
+
)
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
module Cloudflare
|
|
23
|
+
include CloudflareZeroTrustRiskScoringIntegration
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
Pangea::ResourceRegistry.register_module(Pangea::Resources::Cloudflare)
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
require 'dry-struct'
|
|
3
|
+
require 'pangea/resources/types'
|
|
4
|
+
|
|
5
|
+
module Pangea::Resources::Cloudflare::Types
|
|
6
|
+
class ZeroTrustRiskScoringIntegrationAttributes < Dry::Struct
|
|
7
|
+
transform_keys(&:to_sym)
|
|
8
|
+
attribute :account_id, ::Pangea::Resources::Types::CloudflareAccountId
|
|
9
|
+
end
|
|
10
|
+
end
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
require 'pangea/resources/base'
|
|
3
|
+
require 'pangea/resources/reference'
|
|
4
|
+
require 'pangea/resources/cloudflare_zero_trust_tunnel_cloudflared/types'
|
|
5
|
+
require 'pangea/resource_registry'
|
|
6
|
+
|
|
7
|
+
module Pangea::Resources
|
|
8
|
+
module CloudflareZeroTrustTunnelCloudflared
|
|
9
|
+
def cloudflare_zero_trust_tunnel_cloudflared(name, attributes = {})
|
|
10
|
+
attrs = Cloudflare::Types::ZeroTrustTunnelCloudflaredAttributes.new(attributes)
|
|
11
|
+
resource(:cloudflare_zero_trust_tunnel_cloudflared, name) do
|
|
12
|
+
account_id attrs.account_id
|
|
13
|
+
name attrs.name
|
|
14
|
+
secret attrs.secret
|
|
15
|
+
config_src attrs.config_src if attrs.config_src
|
|
16
|
+
end
|
|
17
|
+
ResourceReference.new(
|
|
18
|
+
type: 'cloudflare_zero_trust_tunnel_cloudflared',
|
|
19
|
+
name: name,
|
|
20
|
+
resource_attributes: attrs.to_h,
|
|
21
|
+
outputs: {
|
|
22
|
+
id: "${cloudflare_zero_trust_tunnel_cloudflared.#{name}.id}",
|
|
23
|
+
cname: "${cloudflare_zero_trust_tunnel_cloudflared.#{name}.cname}",
|
|
24
|
+
tunnel_token: "${cloudflare_zero_trust_tunnel_cloudflared.#{name}.tunnel_token}"
|
|
25
|
+
}
|
|
26
|
+
)
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
module Cloudflare
|
|
30
|
+
include CloudflareZeroTrustTunnelCloudflared
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
Pangea::ResourceRegistry.register_module(Pangea::Resources::Cloudflare)
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
require 'dry-struct'
|
|
3
|
+
require 'pangea/resources/types'
|
|
4
|
+
|
|
5
|
+
module Pangea::Resources::Cloudflare::Types
|
|
6
|
+
class ZeroTrustTunnelCloudflaredAttributes < Dry::Struct
|
|
7
|
+
transform_keys(&:to_sym)
|
|
8
|
+
attribute :account_id, ::Pangea::Resources::Types::CloudflareAccountId
|
|
9
|
+
attribute :name, Dry::Types['strict.string']
|
|
10
|
+
attribute :secret, Dry::Types['strict.string']
|
|
11
|
+
attribute :config_src, Dry::Types['strict.string'].enum('local', 'cloudflare').optional.default(nil)
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
require 'pangea/resources/base'
|
|
3
|
+
require 'pangea/resources/reference'
|
|
4
|
+
require 'pangea/resources/cloudflare_zero_trust_tunnel_cloudflared_config/types'
|
|
5
|
+
require 'pangea/resource_registry'
|
|
6
|
+
|
|
7
|
+
module Pangea::Resources
|
|
8
|
+
module CloudflareZeroTrustTunnelCloudflaredConfig
|
|
9
|
+
def cloudflare_zero_trust_tunnel_cloudflared_config(name, attributes = {})
|
|
10
|
+
attrs = Cloudflare::Types::ZeroTrustTunnelCloudflaredConfigAttributes.new(attributes)
|
|
11
|
+
resource(:cloudflare_zero_trust_tunnel_cloudflared_config, name) do
|
|
12
|
+
account_id attrs.account_id
|
|
13
|
+
tunnel_id attrs.tunnel_id
|
|
14
|
+
config attrs.config
|
|
15
|
+
end
|
|
16
|
+
ResourceReference.new(
|
|
17
|
+
type: 'cloudflare_zero_trust_tunnel_cloudflared_config',
|
|
18
|
+
name: name,
|
|
19
|
+
resource_attributes: attrs.to_h,
|
|
20
|
+
outputs: { id: "${cloudflare_zero_trust_tunnel_cloudflared_config.#{name}.id}" }
|
|
21
|
+
)
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
module Cloudflare
|
|
25
|
+
include CloudflareZeroTrustTunnelCloudflaredConfig
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
Pangea::ResourceRegistry.register_module(Pangea::Resources::Cloudflare)
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
require 'dry-struct'
|
|
3
|
+
require 'pangea/resources/types'
|
|
4
|
+
|
|
5
|
+
module Pangea::Resources::Cloudflare::Types
|
|
6
|
+
class ZeroTrustTunnelCloudflaredConfigAttributes < Dry::Struct
|
|
7
|
+
transform_keys(&:to_sym)
|
|
8
|
+
attribute :account_id, ::Pangea::Resources::Types::CloudflareAccountId
|
|
9
|
+
attribute :tunnel_id, Dry::Types['strict.string']
|
|
10
|
+
attribute :config, Dry::Types['strict.hash']
|
|
11
|
+
end
|
|
12
|
+
end
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
require 'pangea/resources/base'
|
|
3
|
+
require 'pangea/resources/reference'
|
|
4
|
+
require 'pangea/resources/cloudflare_zero_trust_tunnel_cloudflared_route/types'
|
|
5
|
+
require 'pangea/resource_registry'
|
|
6
|
+
|
|
7
|
+
module Pangea::Resources
|
|
8
|
+
module CloudflareZeroTrustTunnelCloudflaredRoute
|
|
9
|
+
def cloudflare_zero_trust_tunnel_cloudflared_route(name, attributes = {})
|
|
10
|
+
attrs = Cloudflare::Types::ZeroTrustTunnelCloudflaredRouteAttributes.new(attributes)
|
|
11
|
+
resource(:cloudflare_zero_trust_tunnel_cloudflared_route, name) do
|
|
12
|
+
account_id attrs.account_id
|
|
13
|
+
tunnel_id attrs.tunnel_id
|
|
14
|
+
network attrs.network
|
|
15
|
+
comment attrs.comment if attrs.comment
|
|
16
|
+
virtual_network_id attrs.virtual_network_id if attrs.virtual_network_id
|
|
17
|
+
end
|
|
18
|
+
ResourceReference.new(
|
|
19
|
+
type: 'cloudflare_zero_trust_tunnel_cloudflared_route',
|
|
20
|
+
name: name,
|
|
21
|
+
resource_attributes: attrs.to_h,
|
|
22
|
+
outputs: { id: "${cloudflare_zero_trust_tunnel_cloudflared_route.#{name}.id}" }
|
|
23
|
+
)
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
module Cloudflare
|
|
27
|
+
include CloudflareZeroTrustTunnelCloudflaredRoute
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
Pangea::ResourceRegistry.register_module(Pangea::Resources::Cloudflare)
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
require 'dry-struct'
|
|
3
|
+
require 'pangea/resources/types'
|
|
4
|
+
|
|
5
|
+
module Pangea::Resources::Cloudflare::Types
|
|
6
|
+
class ZeroTrustTunnelCloudflaredRouteAttributes < Dry::Struct
|
|
7
|
+
transform_keys(&:to_sym)
|
|
8
|
+
attribute :account_id, ::Pangea::Resources::Types::CloudflareAccountId
|
|
9
|
+
attribute :tunnel_id, Dry::Types['strict.string']
|
|
10
|
+
attribute :network, Dry::Types['strict.string']
|
|
11
|
+
attribute :comment, Dry::Types['strict.string'].optional.default(nil)
|
|
12
|
+
attribute :virtual_network_id, Dry::Types['strict.string'].optional.default(nil)
|
|
13
|
+
end
|
|
14
|
+
end
|
data/lib/pangea/resources/cloudflare_zero_trust_tunnel_cloudflared_virtual_network/resource.rb
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
require 'pangea/resources/base'
|
|
3
|
+
require 'pangea/resources/reference'
|
|
4
|
+
require 'pangea/resources/cloudflare_zero_trust_tunnel_cloudflared_virtual_network/types'
|
|
5
|
+
require 'pangea/resource_registry'
|
|
6
|
+
|
|
7
|
+
module Pangea::Resources
|
|
8
|
+
module CloudflareZeroTrustTunnelCloudflaredVirtualNetwork
|
|
9
|
+
def cloudflare_zero_trust_tunnel_cloudflared_virtual_network(name, attributes = {})
|
|
10
|
+
attrs = Cloudflare::Types::ZeroTrustTunnelCloudflaredVirtualNetworkAttributes.new(attributes)
|
|
11
|
+
resource(:cloudflare_zero_trust_tunnel_cloudflared_virtual_network, name) do
|
|
12
|
+
account_id attrs.account_id
|
|
13
|
+
end
|
|
14
|
+
ResourceReference.new(
|
|
15
|
+
type: 'cloudflare_zero_trust_tunnel_cloudflared_virtual_network',
|
|
16
|
+
name: name,
|
|
17
|
+
resource_attributes: attrs.to_h,
|
|
18
|
+
outputs: { id: "${cloudflare_zero_trust_tunnel_cloudflared_virtual_network.\#{name}.id}" }
|
|
19
|
+
)
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
module Cloudflare
|
|
23
|
+
include CloudflareZeroTrustTunnelCloudflaredVirtualNetwork
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
Pangea::ResourceRegistry.register_module(Pangea::Resources::Cloudflare)
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
require 'dry-struct'
|
|
3
|
+
require 'pangea/resources/types'
|
|
4
|
+
|
|
5
|
+
module Pangea::Resources::Cloudflare::Types
|
|
6
|
+
class ZeroTrustTunnelCloudflaredVirtualNetworkAttributes < Dry::Struct
|
|
7
|
+
transform_keys(&:to_sym)
|
|
8
|
+
attribute :account_id, ::Pangea::Resources::Types::CloudflareAccountId
|
|
9
|
+
end
|
|
10
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
require 'pangea/resources/base'
|
|
3
|
+
require 'pangea/resources/reference'
|
|
4
|
+
require 'pangea/resources/cloudflare_zero_trust_tunnel_warp_connector/types'
|
|
5
|
+
require 'pangea/resource_registry'
|
|
6
|
+
|
|
7
|
+
module Pangea::Resources
|
|
8
|
+
module CloudflareZeroTrustTunnelWarpConnector
|
|
9
|
+
def cloudflare_zero_trust_tunnel_warp_connector(name, attributes = {})
|
|
10
|
+
attrs = Cloudflare::Types::ZeroTrustTunnelWarpConnectorAttributes.new(attributes)
|
|
11
|
+
resource(:cloudflare_zero_trust_tunnel_warp_connector, name) do
|
|
12
|
+
account_id attrs.account_id
|
|
13
|
+
end
|
|
14
|
+
ResourceReference.new(
|
|
15
|
+
type: 'cloudflare_zero_trust_tunnel_warp_connector',
|
|
16
|
+
name: name,
|
|
17
|
+
resource_attributes: attrs.to_h,
|
|
18
|
+
outputs: { id: "${cloudflare_zero_trust_tunnel_warp_connector.\#{name}.id}" }
|
|
19
|
+
)
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
module Cloudflare
|
|
23
|
+
include CloudflareZeroTrustTunnelWarpConnector
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
Pangea::ResourceRegistry.register_module(Pangea::Resources::Cloudflare)
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
require 'dry-struct'
|
|
3
|
+
require 'pangea/resources/types'
|
|
4
|
+
|
|
5
|
+
module Pangea::Resources::Cloudflare::Types
|
|
6
|
+
class ZeroTrustTunnelWarpConnectorAttributes < Dry::Struct
|
|
7
|
+
transform_keys(&:to_sym)
|
|
8
|
+
attribute :account_id, ::Pangea::Resources::Types::CloudflareAccountId
|
|
9
|
+
end
|
|
10
|
+
end
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
# Copyright 2025 The Pangea Authors
|
|
3
|
+
#
|
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
# you may not use this file except in compliance with the License.
|
|
6
|
+
# You may obtain a copy of the License at
|
|
7
|
+
#
|
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
#
|
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
# See the License for the specific language governing permissions and
|
|
14
|
+
# limitations under the License.
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
require 'pangea/resources/base'
|
|
18
|
+
require 'pangea/resources/reference'
|
|
19
|
+
require 'pangea/resources/cloudflare_zone/types'
|
|
20
|
+
require 'pangea/resource_registry'
|
|
21
|
+
|
|
22
|
+
module Pangea
|
|
23
|
+
module Resources
|
|
24
|
+
# Cloudflare Zone resource module that self-registers
|
|
25
|
+
module CloudflareZone
|
|
26
|
+
# Create a Cloudflare Zone with type-safe attributes
|
|
27
|
+
#
|
|
28
|
+
# @param name [Symbol] The resource name
|
|
29
|
+
# @param attributes [Hash] Zone attributes
|
|
30
|
+
# @return [ResourceReference] Reference object with outputs and computed properties
|
|
31
|
+
def cloudflare_zone(name, attributes = {})
|
|
32
|
+
# Validate attributes using dry-struct
|
|
33
|
+
zone_attrs = Cloudflare::Types::ZoneAttributes.new(attributes)
|
|
34
|
+
|
|
35
|
+
# Generate terraform resource block via terraform-synthesizer
|
|
36
|
+
resource(:cloudflare_zone, name) do
|
|
37
|
+
zone zone_attrs.zone
|
|
38
|
+
account_id zone_attrs.account_id if zone_attrs.account_id
|
|
39
|
+
jump_start zone_attrs.jump_start
|
|
40
|
+
paused zone_attrs.paused
|
|
41
|
+
plan zone_attrs.plan
|
|
42
|
+
type zone_attrs.type
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
# Return resource reference with available outputs
|
|
46
|
+
ResourceReference.new(
|
|
47
|
+
type: 'cloudflare_zone',
|
|
48
|
+
name: name,
|
|
49
|
+
resource_attributes: zone_attrs.to_h,
|
|
50
|
+
outputs: {
|
|
51
|
+
id: "${cloudflare_zone.#{name}.id}",
|
|
52
|
+
zone_id: "${cloudflare_zone.#{name}.id}",
|
|
53
|
+
status: "${cloudflare_zone.#{name}.status}",
|
|
54
|
+
name_servers: "${cloudflare_zone.#{name}.name_servers}",
|
|
55
|
+
vanity_name_servers: "${cloudflare_zone.#{name}.vanity_name_servers}",
|
|
56
|
+
verification_key: "${cloudflare_zone.#{name}.verification_key}",
|
|
57
|
+
meta: "${cloudflare_zone.#{name}.meta}"
|
|
58
|
+
}
|
|
59
|
+
)
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
# Maintain backward compatibility by extending Cloudflare module
|
|
64
|
+
module Cloudflare
|
|
65
|
+
include CloudflareZone
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
# Auto-register this module when it's loaded
|
|
71
|
+
Pangea::ResourceRegistry.register_module(Pangea::Resources::Cloudflare)
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
# Copyright 2025 The Pangea Authors
|
|
3
|
+
#
|
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
# you may not use this file except in compliance with the License.
|
|
6
|
+
# You may obtain a copy of the License at
|
|
7
|
+
#
|
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
#
|
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
# See the License for the specific language governing permissions and
|
|
14
|
+
# limitations under the License.
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
require 'dry-struct'
|
|
18
|
+
require 'pangea/resources/types'
|
|
19
|
+
|
|
20
|
+
module Pangea
|
|
21
|
+
module Resources
|
|
22
|
+
module Cloudflare
|
|
23
|
+
module Types
|
|
24
|
+
# Cloudflare Zone resource attributes with validation
|
|
25
|
+
class ZoneAttributes < Dry::Struct
|
|
26
|
+
transform_keys(&:to_sym)
|
|
27
|
+
|
|
28
|
+
attribute :zone, ::Pangea::Resources::Types::DomainName
|
|
29
|
+
attribute :account_id, ::Pangea::Resources::Types::CloudflareAccountId.optional.default(nil)
|
|
30
|
+
attribute :jump_start, ::Pangea::Resources::Types::Bool.default(false)
|
|
31
|
+
attribute :paused, ::Pangea::Resources::Types::Bool.default(false)
|
|
32
|
+
attribute :plan, ::Pangea::Resources::Types::CloudflareZonePlan
|
|
33
|
+
attribute :type, ::Pangea::Resources::Types::CloudflareZoneType
|
|
34
|
+
|
|
35
|
+
# Computed properties
|
|
36
|
+
def is_active?
|
|
37
|
+
!paused
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def is_enterprise?
|
|
41
|
+
plan == 'enterprise'
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def is_free?
|
|
45
|
+
plan == 'free'
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def zone_root_domain
|
|
49
|
+
# Extract root domain from zone
|
|
50
|
+
parts = zone.split('.')
|
|
51
|
+
return zone if parts.length <= 2
|
|
52
|
+
parts[-2..-1].join('.')
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def is_subdomain?
|
|
56
|
+
zone.split('.').length > 2
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
require 'pangea/resources/base'
|
|
3
|
+
require 'pangea/resources/reference'
|
|
4
|
+
require 'pangea/resources/cloudflare_zone_cache_reserve/types'
|
|
5
|
+
require 'pangea/resource_registry'
|
|
6
|
+
|
|
7
|
+
module Pangea::Resources
|
|
8
|
+
module CloudflareZoneCacheReserve
|
|
9
|
+
def cloudflare_zone_cache_reserve(name, attributes = {})
|
|
10
|
+
attrs = Cloudflare::Types::ZoneCacheReserveAttributes.new(attributes)
|
|
11
|
+
resource(:cloudflare_zone_cache_reserve, name) do
|
|
12
|
+
zone_id attrs.zone_id if attrs.zone_id
|
|
13
|
+
account_id attrs.account_id if attrs.account_id
|
|
14
|
+
end
|
|
15
|
+
ResourceReference.new(
|
|
16
|
+
type: 'cloudflare_zone_cache_reserve',
|
|
17
|
+
name: name,
|
|
18
|
+
resource_attributes: attrs.to_h,
|
|
19
|
+
outputs: { id: "${cloudflare_zone_cache_reserve.\#{name}.id}" }
|
|
20
|
+
)
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
module Cloudflare
|
|
24
|
+
include CloudflareZoneCacheReserve
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
Pangea::ResourceRegistry.register_module(Pangea::Resources::Cloudflare)
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
require 'dry-struct'
|
|
3
|
+
require 'pangea/resources/types'
|
|
4
|
+
|
|
5
|
+
module Pangea::Resources::Cloudflare::Types
|
|
6
|
+
class ZoneCacheReserveAttributes < Dry::Struct
|
|
7
|
+
transform_keys(&:to_sym)
|
|
8
|
+
attribute :zone_id, ::Pangea::Resources::Types::CloudflareZoneId.optional.default(nil)
|
|
9
|
+
attribute :account_id, ::Pangea::Resources::Types::CloudflareAccountId.optional.default(nil)
|
|
10
|
+
end
|
|
11
|
+
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
require 'pangea/resources/base'
|
|
3
|
+
require 'pangea/resources/reference'
|
|
4
|
+
require 'pangea/resources/cloudflare_zone_cache_variants/types'
|
|
5
|
+
require 'pangea/resource_registry'
|
|
6
|
+
|
|
7
|
+
module Pangea::Resources
|
|
8
|
+
module CloudflareZoneCacheVariants
|
|
9
|
+
def cloudflare_zone_cache_variants(name, attributes = {})
|
|
10
|
+
attrs = Cloudflare::Types::ZoneCacheVariantsAttributes.new(attributes)
|
|
11
|
+
resource(:cloudflare_zone_cache_variants, name) do
|
|
12
|
+
zone_id attrs.zone_id if attrs.zone_id
|
|
13
|
+
account_id attrs.account_id if attrs.account_id
|
|
14
|
+
end
|
|
15
|
+
ResourceReference.new(
|
|
16
|
+
type: 'cloudflare_zone_cache_variants',
|
|
17
|
+
name: name,
|
|
18
|
+
resource_attributes: attrs.to_h,
|
|
19
|
+
outputs: { id: "${cloudflare_zone_cache_variants.\#{name}.id}" }
|
|
20
|
+
)
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
module Cloudflare
|
|
24
|
+
include CloudflareZoneCacheVariants
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
Pangea::ResourceRegistry.register_module(Pangea::Resources::Cloudflare)
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
require 'dry-struct'
|
|
3
|
+
require 'pangea/resources/types'
|
|
4
|
+
|
|
5
|
+
module Pangea::Resources::Cloudflare::Types
|
|
6
|
+
class ZoneCacheVariantsAttributes < Dry::Struct
|
|
7
|
+
transform_keys(&:to_sym)
|
|
8
|
+
attribute :zone_id, ::Pangea::Resources::Types::CloudflareZoneId.optional.default(nil)
|
|
9
|
+
attribute :account_id, ::Pangea::Resources::Types::CloudflareAccountId.optional.default(nil)
|
|
10
|
+
end
|
|
11
|
+
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
require 'pangea/resources/base'
|
|
3
|
+
require 'pangea/resources/reference'
|
|
4
|
+
require 'pangea/resources/cloudflare_zone_dns_settings/types'
|
|
5
|
+
require 'pangea/resource_registry'
|
|
6
|
+
|
|
7
|
+
module Pangea::Resources
|
|
8
|
+
module CloudflareZoneDnsSettings
|
|
9
|
+
def cloudflare_zone_dns_settings(name, attributes = {})
|
|
10
|
+
attrs = Cloudflare::Types::ZoneDnsSettingsAttributes.new(attributes)
|
|
11
|
+
resource(:cloudflare_zone_dns_settings, name) do
|
|
12
|
+
zone_id attrs.zone_id if attrs.zone_id
|
|
13
|
+
account_id attrs.account_id if attrs.account_id
|
|
14
|
+
end
|
|
15
|
+
ResourceReference.new(
|
|
16
|
+
type: 'cloudflare_zone_dns_settings',
|
|
17
|
+
name: name,
|
|
18
|
+
resource_attributes: attrs.to_h,
|
|
19
|
+
outputs: { id: "${cloudflare_zone_dns_settings.\#{name}.id}" }
|
|
20
|
+
)
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
module Cloudflare
|
|
24
|
+
include CloudflareZoneDnsSettings
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
Pangea::ResourceRegistry.register_module(Pangea::Resources::Cloudflare)
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
require 'dry-struct'
|
|
3
|
+
require 'pangea/resources/types'
|
|
4
|
+
|
|
5
|
+
module Pangea::Resources::Cloudflare::Types
|
|
6
|
+
class ZoneDnsSettingsAttributes < Dry::Struct
|
|
7
|
+
transform_keys(&:to_sym)
|
|
8
|
+
attribute :zone_id, ::Pangea::Resources::Types::CloudflareZoneId.optional.default(nil)
|
|
9
|
+
attribute :account_id, ::Pangea::Resources::Types::CloudflareAccountId.optional.default(nil)
|
|
10
|
+
end
|
|
11
|
+
end
|