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,93 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
# Copyright 2025 The Pangea Authors
|
|
3
|
+
|
|
4
|
+
require 'dry-struct'
|
|
5
|
+
require 'pangea/resources/types'
|
|
6
|
+
|
|
7
|
+
module Pangea
|
|
8
|
+
module Resources
|
|
9
|
+
module Cloudflare
|
|
10
|
+
module Types
|
|
11
|
+
# Access rule mode enum
|
|
12
|
+
CloudflareAccessRuleMode = Dry::Types['strict.string'].enum(
|
|
13
|
+
'block',
|
|
14
|
+
'challenge',
|
|
15
|
+
'whitelist',
|
|
16
|
+
'js_challenge',
|
|
17
|
+
'managed_challenge'
|
|
18
|
+
)
|
|
19
|
+
|
|
20
|
+
# Access rule target enum
|
|
21
|
+
CloudflareAccessRuleTarget = Dry::Types['strict.string'].enum(
|
|
22
|
+
'ip',
|
|
23
|
+
'ip6',
|
|
24
|
+
'ip_range',
|
|
25
|
+
'asn',
|
|
26
|
+
'country'
|
|
27
|
+
)
|
|
28
|
+
|
|
29
|
+
# Type-safe attributes for Cloudflare Access Rule
|
|
30
|
+
class AccessRuleAttributes < Dry::Struct
|
|
31
|
+
transform_keys(&:to_sym)
|
|
32
|
+
|
|
33
|
+
# @!attribute zone_id
|
|
34
|
+
# @return [String, nil] Zone ID (mutually exclusive with account_id)
|
|
35
|
+
attribute :zone_id, ::Pangea::Resources::Types::CloudflareZoneId.optional.default(nil)
|
|
36
|
+
|
|
37
|
+
# @!attribute account_id
|
|
38
|
+
# @return [String, nil] Account ID (mutually exclusive with zone_id)
|
|
39
|
+
attribute :account_id, ::Pangea::Resources::Types::CloudflareAccountId.optional.default(nil)
|
|
40
|
+
|
|
41
|
+
# @!attribute mode
|
|
42
|
+
# @return [String] Action to apply
|
|
43
|
+
attribute :mode, CloudflareAccessRuleMode
|
|
44
|
+
|
|
45
|
+
# @!attribute target
|
|
46
|
+
# @return [String] Configuration target
|
|
47
|
+
attribute :target, CloudflareAccessRuleTarget
|
|
48
|
+
|
|
49
|
+
# @!attribute value
|
|
50
|
+
# @return [String] Target value (IP, ASN, country code)
|
|
51
|
+
attribute :value, Dry::Types['strict.string'].constrained(min_size: 1)
|
|
52
|
+
|
|
53
|
+
# @!attribute notes
|
|
54
|
+
# @return [String, nil] Rule notes
|
|
55
|
+
attribute :notes, Dry::Types['strict.string'].optional.default(nil)
|
|
56
|
+
|
|
57
|
+
def self.new(attributes)
|
|
58
|
+
attrs = attributes.is_a?(Hash) ? attributes : {}
|
|
59
|
+
|
|
60
|
+
# Validate mutually exclusive zone_id and account_id
|
|
61
|
+
if attrs[:zone_id] && attrs[:account_id]
|
|
62
|
+
raise Dry::Struct::Error, "zone_id and account_id are mutually exclusive"
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
unless attrs[:zone_id] || attrs[:account_id]
|
|
66
|
+
raise Dry::Struct::Error, "Either zone_id or account_id must be provided"
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
super(attrs)
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
# Check if this is an account-level rule
|
|
73
|
+
# @return [Boolean] true if account-level
|
|
74
|
+
def account_level?
|
|
75
|
+
!account_id.nil?
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
# Check if this blocks traffic
|
|
79
|
+
# @return [Boolean] true if mode is block
|
|
80
|
+
def blocking?
|
|
81
|
+
mode == 'block'
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
# Check if this is a whitelist rule
|
|
85
|
+
# @return [Boolean] true if mode is whitelist
|
|
86
|
+
def whitelist?
|
|
87
|
+
mode == 'whitelist'
|
|
88
|
+
end
|
|
89
|
+
end
|
|
90
|
+
end
|
|
91
|
+
end
|
|
92
|
+
end
|
|
93
|
+
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_account/types'
|
|
5
|
+
require 'pangea/resource_registry'
|
|
6
|
+
|
|
7
|
+
module Pangea::Resources
|
|
8
|
+
module CloudflareAccount
|
|
9
|
+
def cloudflare_account(name, attributes = {})
|
|
10
|
+
attrs = Cloudflare::Types::AccountAttributes.new(attributes)
|
|
11
|
+
resource(:cloudflare_account, name) do
|
|
12
|
+
name attrs.name
|
|
13
|
+
type attrs.type if attrs.type
|
|
14
|
+
enforce_twofactor attrs.enforce_twofactor if !attrs.enforce_twofactor.nil?
|
|
15
|
+
end
|
|
16
|
+
ResourceReference.new(
|
|
17
|
+
type: 'cloudflare_account',
|
|
18
|
+
name: name,
|
|
19
|
+
resource_attributes: attrs.to_h,
|
|
20
|
+
outputs: { id: "${cloudflare_account.#{name}.id}" }
|
|
21
|
+
)
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
module Cloudflare
|
|
25
|
+
include CloudflareAccount
|
|
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 AccountAttributes < Dry::Struct
|
|
7
|
+
transform_keys(&:to_sym)
|
|
8
|
+
attribute :name, Dry::Types['strict.string']
|
|
9
|
+
attribute :type, Dry::Types['strict.string'].enum('standard', 'enterprise').optional.default(nil)
|
|
10
|
+
attribute :enforce_twofactor, Dry::Types['strict.bool'].optional.default(nil)
|
|
11
|
+
end
|
|
12
|
+
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_account_dns_settings/types'
|
|
5
|
+
require 'pangea/resource_registry'
|
|
6
|
+
|
|
7
|
+
module Pangea::Resources
|
|
8
|
+
module CloudflareAccountDnsSettings
|
|
9
|
+
def cloudflare_account_dns_settings(name, attributes = {})
|
|
10
|
+
attrs = Cloudflare::Types::AccountDnsSettingsAttributes.new(attributes)
|
|
11
|
+
resource(:cloudflare_account_dns_settings, name) do
|
|
12
|
+
account_id attrs.account_id if attrs.account_id
|
|
13
|
+
zone_id attrs.zone_id if attrs.zone_id
|
|
14
|
+
end
|
|
15
|
+
ResourceReference.new(
|
|
16
|
+
type: 'cloudflare_account_dns_settings',
|
|
17
|
+
name: name,
|
|
18
|
+
resource_attributes: attrs.to_h,
|
|
19
|
+
outputs: { id: "${cloudflare_account_dns_settings.\#{name}.id}" }
|
|
20
|
+
)
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
module Cloudflare
|
|
24
|
+
include CloudflareAccountDnsSettings
|
|
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 AccountDnsSettingsAttributes < Dry::Struct
|
|
7
|
+
transform_keys(&:to_sym)
|
|
8
|
+
attribute :account_id, ::Pangea::Resources::Types::CloudflareAccountId.optional.default(nil)
|
|
9
|
+
attribute :zone_id, ::Pangea::Resources::Types::CloudflareZoneId.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_account_dns_settings_internal_view/types'
|
|
5
|
+
require 'pangea/resource_registry'
|
|
6
|
+
|
|
7
|
+
module Pangea::Resources
|
|
8
|
+
module CloudflareAccountDnsSettingsInternalView
|
|
9
|
+
def cloudflare_account_dns_settings_internal_view(name, attributes = {})
|
|
10
|
+
attrs = Cloudflare::Types::AccountDnsSettingsInternalViewAttributes.new(attributes)
|
|
11
|
+
resource(:cloudflare_account_dns_settings_internal_view, name) do
|
|
12
|
+
account_id attrs.account_id if attrs.account_id
|
|
13
|
+
zone_id attrs.zone_id if attrs.zone_id
|
|
14
|
+
end
|
|
15
|
+
ResourceReference.new(
|
|
16
|
+
type: 'cloudflare_account_dns_settings_internal_view',
|
|
17
|
+
name: name,
|
|
18
|
+
resource_attributes: attrs.to_h,
|
|
19
|
+
outputs: { id: "${cloudflare_account_dns_settings_internal_view.\#{name}.id}" }
|
|
20
|
+
)
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
module Cloudflare
|
|
24
|
+
include CloudflareAccountDnsSettingsInternalView
|
|
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 AccountDnsSettingsInternalViewAttributes < Dry::Struct
|
|
7
|
+
transform_keys(&:to_sym)
|
|
8
|
+
attribute :account_id, ::Pangea::Resources::Types::CloudflareAccountId.optional.default(nil)
|
|
9
|
+
attribute :zone_id, ::Pangea::Resources::Types::CloudflareZoneId.optional.default(nil)
|
|
10
|
+
end
|
|
11
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
require 'pangea/resources/base'
|
|
3
|
+
require 'pangea/resources/reference'
|
|
4
|
+
require 'pangea/resources/cloudflare_account_member/types'
|
|
5
|
+
require 'pangea/resource_registry'
|
|
6
|
+
|
|
7
|
+
module Pangea::Resources
|
|
8
|
+
module CloudflareAccountMember
|
|
9
|
+
def cloudflare_account_member(name, attributes = {})
|
|
10
|
+
attrs = Cloudflare::Types::AccountMemberAttributes.new(attributes)
|
|
11
|
+
resource(:cloudflare_account_member, name) do
|
|
12
|
+
account_id attrs.account_id
|
|
13
|
+
email_address attrs.email_address
|
|
14
|
+
role_ids attrs.role_ids
|
|
15
|
+
status attrs.status if attrs.status
|
|
16
|
+
end
|
|
17
|
+
ResourceReference.new(
|
|
18
|
+
type: 'cloudflare_account_member',
|
|
19
|
+
name: name,
|
|
20
|
+
resource_attributes: attrs.to_h,
|
|
21
|
+
outputs: { id: "${cloudflare_account_member.#{name}.id}" }
|
|
22
|
+
)
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
module Cloudflare
|
|
26
|
+
include CloudflareAccountMember
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
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 AccountMemberAttributes < Dry::Struct
|
|
7
|
+
transform_keys(&:to_sym)
|
|
8
|
+
attribute :account_id, ::Pangea::Resources::Types::CloudflareAccountId
|
|
9
|
+
attribute :email_address, Dry::Types['strict.string']
|
|
10
|
+
attribute :role_ids, Dry::Types['strict.array'].of(Dry::Types['strict.string'])
|
|
11
|
+
attribute :status, Dry::Types['strict.string'].enum('accepted', 'pending').optional.default(nil)
|
|
12
|
+
end
|
|
13
|
+
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_account_subscription/types'
|
|
5
|
+
require 'pangea/resource_registry'
|
|
6
|
+
|
|
7
|
+
module Pangea::Resources
|
|
8
|
+
module CloudflareAccountSubscription
|
|
9
|
+
def cloudflare_account_subscription(name, attributes = {})
|
|
10
|
+
attrs = Cloudflare::Types::AccountSubscriptionAttributes.new(attributes)
|
|
11
|
+
resource(:cloudflare_account_subscription, name) do
|
|
12
|
+
account_id attrs.account_id if attrs.account_id
|
|
13
|
+
zone_id attrs.zone_id if attrs.zone_id
|
|
14
|
+
end
|
|
15
|
+
ResourceReference.new(
|
|
16
|
+
type: 'cloudflare_account_subscription',
|
|
17
|
+
name: name,
|
|
18
|
+
resource_attributes: attrs.to_h,
|
|
19
|
+
outputs: { id: "${cloudflare_account_subscription.\#{name}.id}" }
|
|
20
|
+
)
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
module Cloudflare
|
|
24
|
+
include CloudflareAccountSubscription
|
|
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 AccountSubscriptionAttributes < Dry::Struct
|
|
7
|
+
transform_keys(&:to_sym)
|
|
8
|
+
attribute :account_id, ::Pangea::Resources::Types::CloudflareAccountId.optional.default(nil)
|
|
9
|
+
attribute :zone_id, ::Pangea::Resources::Types::CloudflareZoneId.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_account_token/types'
|
|
5
|
+
require 'pangea/resource_registry'
|
|
6
|
+
|
|
7
|
+
module Pangea::Resources
|
|
8
|
+
module CloudflareAccountToken
|
|
9
|
+
def cloudflare_account_token(name, attributes = {})
|
|
10
|
+
attrs = Cloudflare::Types::AccountTokenAttributes.new(attributes)
|
|
11
|
+
resource(:cloudflare_account_token, name) do
|
|
12
|
+
account_id attrs.account_id if attrs.account_id
|
|
13
|
+
zone_id attrs.zone_id if attrs.zone_id
|
|
14
|
+
end
|
|
15
|
+
ResourceReference.new(
|
|
16
|
+
type: 'cloudflare_account_token',
|
|
17
|
+
name: name,
|
|
18
|
+
resource_attributes: attrs.to_h,
|
|
19
|
+
outputs: { id: "${cloudflare_account_token.\#{name}.id}" }
|
|
20
|
+
)
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
module Cloudflare
|
|
24
|
+
include CloudflareAccountToken
|
|
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 AccountTokenAttributes < Dry::Struct
|
|
7
|
+
transform_keys(&:to_sym)
|
|
8
|
+
attribute :account_id, ::Pangea::Resources::Types::CloudflareAccountId.optional.default(nil)
|
|
9
|
+
attribute :zone_id, ::Pangea::Resources::Types::CloudflareZoneId.optional.default(nil)
|
|
10
|
+
end
|
|
11
|
+
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_address_map/types'
|
|
5
|
+
require 'pangea/resource_registry'
|
|
6
|
+
|
|
7
|
+
module Pangea::Resources
|
|
8
|
+
module CloudflareAddressMap
|
|
9
|
+
def cloudflare_address_map(name, attributes = {})
|
|
10
|
+
attrs = Cloudflare::Types::AddressMapAttributes.new(attributes)
|
|
11
|
+
resource(:cloudflare_address_map, name) do
|
|
12
|
+
account_id attrs.account_id
|
|
13
|
+
end
|
|
14
|
+
ResourceReference.new(
|
|
15
|
+
type: 'cloudflare_address_map',
|
|
16
|
+
name: name,
|
|
17
|
+
resource_attributes: attrs.to_h,
|
|
18
|
+
outputs: { id: "${cloudflare_address_map.\#{name}.id}" }
|
|
19
|
+
)
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
module Cloudflare
|
|
23
|
+
include CloudflareAddressMap
|
|
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 AddressMapAttributes < Dry::Struct
|
|
7
|
+
transform_keys(&:to_sym)
|
|
8
|
+
attribute :account_id, ::Pangea::Resources::Types::CloudflareAccountId
|
|
9
|
+
end
|
|
10
|
+
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_api_shield/types'
|
|
5
|
+
require 'pangea/resource_registry'
|
|
6
|
+
|
|
7
|
+
module Pangea::Resources
|
|
8
|
+
module CloudflareApiShield
|
|
9
|
+
def cloudflare_api_shield(name, attributes = {})
|
|
10
|
+
attrs = Cloudflare::Types::ApiShieldAttributes.new(attributes)
|
|
11
|
+
resource(:cloudflare_api_shield, name) do
|
|
12
|
+
zone_id attrs.zone_id
|
|
13
|
+
auth_id_characteristics attrs.auth_id_characteristics if attrs.auth_id_characteristics
|
|
14
|
+
end
|
|
15
|
+
ResourceReference.new(
|
|
16
|
+
type: 'cloudflare_api_shield',
|
|
17
|
+
name: name,
|
|
18
|
+
resource_attributes: attrs.to_h,
|
|
19
|
+
outputs: { id: "${cloudflare_api_shield.#{name}.id}" }
|
|
20
|
+
)
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
module Cloudflare
|
|
24
|
+
include CloudflareApiShield
|
|
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 ApiShieldAttributes < Dry::Struct
|
|
7
|
+
transform_keys(&:to_sym)
|
|
8
|
+
attribute :zone_id, ::Pangea::Resources::Types::CloudflareZoneId
|
|
9
|
+
attribute :auth_id_characteristics, Dry::Types['strict.array'].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_api_shield_discovery_operation/types'
|
|
5
|
+
require 'pangea/resource_registry'
|
|
6
|
+
|
|
7
|
+
module Pangea::Resources
|
|
8
|
+
module CloudflareApiShieldDiscoveryOperation
|
|
9
|
+
def cloudflare_api_shield_discovery_operation(name, attributes = {})
|
|
10
|
+
attrs = Cloudflare::Types::ApiShieldDiscoveryOperationAttributes.new(attributes)
|
|
11
|
+
resource(:cloudflare_api_shield_discovery_operation, 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_api_shield_discovery_operation',
|
|
17
|
+
name: name,
|
|
18
|
+
resource_attributes: attrs.to_h,
|
|
19
|
+
outputs: { id: "${cloudflare_api_shield_discovery_operation.\#{name}.id}" }
|
|
20
|
+
)
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
module Cloudflare
|
|
24
|
+
include CloudflareApiShieldDiscoveryOperation
|
|
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 ApiShieldDiscoveryOperationAttributes < 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,30 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
require 'pangea/resources/base'
|
|
3
|
+
require 'pangea/resources/reference'
|
|
4
|
+
require 'pangea/resources/cloudflare_api_shield_operation/types'
|
|
5
|
+
require 'pangea/resource_registry'
|
|
6
|
+
|
|
7
|
+
module Pangea::Resources
|
|
8
|
+
module CloudflareApiShieldOperation
|
|
9
|
+
def cloudflare_api_shield_operation(name, attributes = {})
|
|
10
|
+
attrs = Cloudflare::Types::ApiShieldOperationAttributes.new(attributes)
|
|
11
|
+
resource(:cloudflare_api_shield_operation, name) do
|
|
12
|
+
zone_id attrs.zone_id
|
|
13
|
+
# method is a Kernel method, must use hash access and method_missing
|
|
14
|
+
method_missing(:method, attrs[:method])
|
|
15
|
+
host attrs.host
|
|
16
|
+
endpoint attrs.endpoint
|
|
17
|
+
end
|
|
18
|
+
ResourceReference.new(
|
|
19
|
+
type: 'cloudflare_api_shield_operation',
|
|
20
|
+
name: name,
|
|
21
|
+
resource_attributes: attrs.to_h,
|
|
22
|
+
outputs: { id: "${cloudflare_api_shield_operation.#{name}.id}" }
|
|
23
|
+
)
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
module Cloudflare
|
|
27
|
+
include CloudflareApiShieldOperation
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
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 ApiShieldOperationAttributes < Dry::Struct
|
|
7
|
+
transform_keys(&:to_sym)
|
|
8
|
+
attribute :zone_id, ::Pangea::Resources::Types::CloudflareZoneId
|
|
9
|
+
attribute :method, Dry::Types['strict.string']
|
|
10
|
+
attribute :host, Dry::Types['strict.string']
|
|
11
|
+
attribute :endpoint, Dry::Types['strict.string']
|
|
12
|
+
end
|
|
13
|
+
end
|
data/lib/pangea/resources/cloudflare_api_shield_operation_schema_validation_settings/resource.rb
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
require 'pangea/resources/base'
|
|
3
|
+
require 'pangea/resources/reference'
|
|
4
|
+
require 'pangea/resources/cloudflare_api_shield_operation_schema_validation_settings/types'
|
|
5
|
+
require 'pangea/resource_registry'
|
|
6
|
+
|
|
7
|
+
module Pangea::Resources
|
|
8
|
+
module CloudflareApiShieldOperationSchemaValidationSettings
|
|
9
|
+
def cloudflare_api_shield_operation_schema_validation_settings(name, attributes = {})
|
|
10
|
+
attrs = Cloudflare::Types::ApiShieldOperationSchemaValidationSettingsAttributes.new(attributes)
|
|
11
|
+
resource(:cloudflare_api_shield_operation_schema_validation_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_api_shield_operation_schema_validation_settings',
|
|
17
|
+
name: name,
|
|
18
|
+
resource_attributes: attrs.to_h,
|
|
19
|
+
outputs: { id: "${cloudflare_api_shield_operation_schema_validation_settings.\#{name}.id}" }
|
|
20
|
+
)
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
module Cloudflare
|
|
24
|
+
include CloudflareApiShieldOperationSchemaValidationSettings
|
|
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 ApiShieldOperationSchemaValidationSettingsAttributes < 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,30 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
require 'pangea/resources/base'
|
|
3
|
+
require 'pangea/resources/reference'
|
|
4
|
+
require 'pangea/resources/cloudflare_api_shield_schema/types'
|
|
5
|
+
require 'pangea/resource_registry'
|
|
6
|
+
|
|
7
|
+
module Pangea::Resources
|
|
8
|
+
module CloudflareApiShieldSchema
|
|
9
|
+
def cloudflare_api_shield_schema(name, attributes = {})
|
|
10
|
+
attrs = Cloudflare::Types::ApiShieldSchemaAttributes.new(attributes)
|
|
11
|
+
resource(:cloudflare_api_shield_schema, name) do
|
|
12
|
+
zone_id attrs.zone_id
|
|
13
|
+
name attrs.name
|
|
14
|
+
source attrs.source
|
|
15
|
+
kind attrs.kind if attrs.kind
|
|
16
|
+
validation_enabled attrs.validation_enabled if !attrs.validation_enabled.nil?
|
|
17
|
+
end
|
|
18
|
+
ResourceReference.new(
|
|
19
|
+
type: 'cloudflare_api_shield_schema',
|
|
20
|
+
name: name,
|
|
21
|
+
resource_attributes: attrs.to_h,
|
|
22
|
+
outputs: { id: "${cloudflare_api_shield_schema.#{name}.id}" }
|
|
23
|
+
)
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
module Cloudflare
|
|
27
|
+
include CloudflareApiShieldSchema
|
|
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 ApiShieldSchemaAttributes < Dry::Struct
|
|
7
|
+
transform_keys(&:to_sym)
|
|
8
|
+
attribute :zone_id, ::Pangea::Resources::Types::CloudflareZoneId
|
|
9
|
+
attribute :name, Dry::Types['strict.string']
|
|
10
|
+
attribute :source, Dry::Types['strict.string']
|
|
11
|
+
attribute :kind, Dry::Types['strict.string'].enum('openapi_v3').optional.default(nil)
|
|
12
|
+
attribute :validation_enabled, Dry::Types['strict.bool'].optional.default(nil)
|
|
13
|
+
end
|
|
14
|
+
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_api_shield_schema_validation_settings/types'
|
|
5
|
+
require 'pangea/resource_registry'
|
|
6
|
+
|
|
7
|
+
module Pangea::Resources
|
|
8
|
+
module CloudflareApiShieldSchemaValidationSettings
|
|
9
|
+
def cloudflare_api_shield_schema_validation_settings(name, attributes = {})
|
|
10
|
+
attrs = Cloudflare::Types::ApiShieldSchemaValidationSettingsAttributes.new(attributes)
|
|
11
|
+
resource(:cloudflare_api_shield_schema_validation_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_api_shield_schema_validation_settings',
|
|
17
|
+
name: name,
|
|
18
|
+
resource_attributes: attrs.to_h,
|
|
19
|
+
outputs: { id: "${cloudflare_api_shield_schema_validation_settings.\#{name}.id}" }
|
|
20
|
+
)
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
module Cloudflare
|
|
24
|
+
include CloudflareApiShieldSchemaValidationSettings
|
|
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 ApiShieldSchemaValidationSettingsAttributes < 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
|