]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
dnsdist: Fix Rust warnings, be consistent in the naming of YAML objects
authorRemi Gacogne <remi.gacogne@powerdns.com>
Thu, 16 Jan 2025 09:26:15 +0000 (10:26 +0100)
committerRemi Gacogne <remi.gacogne@powerdns.com>
Thu, 16 Jan 2025 09:26:15 +0000 (10:26 +0100)
pdns/dnsdistdist/dnsdist-rust-lib/dnsdist-settings-documentation-generator.py
pdns/dnsdistdist/dnsdist-rust-lib/dnsdist-settings-generator.py
pdns/dnsdistdist/dnsdist-rust-lib/rust-middle-in.rs
pdns/dnsdistdist/dnsdist-rust-lib/rust/src/lib.rs
pdns/dnsdistdist/dnsdist-settings-definitions.yml
pdns/dnsdistdist/docs/reference/yaml-settings.rst

index 8ba44ef082cfe4c4c132e66007e370833e3ddd21..4eef23a3b224063d7877e4f71e96f416116a92cf 100644 (file)
@@ -30,7 +30,7 @@ def get_rust_object_name(name):
     object_name = ''
     capitalize = True
     for char in name:
-        if char == '-':
+        if char in ['-', '_']:
             capitalize = True
             continue
         if capitalize:
index 4b5dfdfc388fed2e395d107f1170cb843839be13..ca7e361df6c9e092604b94bc916f3bffc155cf11 100644 (file)
@@ -742,7 +742,8 @@ def generate_rust_selector_to_config(output):
 def handle_structures(generated_fp, definitions, default_functions, validation_functions):
     for definition_name, keys in definitions.items():
         generated_fp.write(get_rust_struct_from_definition(definition_name, keys, default_functions) + '\n')
-        validation_functions.append(get_struct_validation_function_from_definition(definition_name, keys['parameters'] if 'parameters' in keys else []))
+        if definition_name not in ['global', 'proto_buf_meta', 'proxy_protocol_value', 'query_rule', 'response_rule']:
+            validation_functions.append(get_struct_validation_function_from_definition(definition_name, keys['parameters'] if 'parameters' in keys else []))
 
 def get_temporary_file_for_generated_code(directory):
     generated_fp = tempfile.NamedTemporaryFile(mode='w+t', encoding='utf-8', dir=directory, delete=False)
index acdef9962be5f2c9174186d3afe4d18983054808..6dea5667323d68fecd46f3e69c1bb3b2a916a73b 100644 (file)
@@ -95,9 +95,3 @@ impl ResponseRuleConfigurationSerde {
     Ok(())
   }
 }
-
-impl dnsdistsettings::SharedDNSResponseAction {
-  fn validate(&self) -> Result<(), ValidationError> {
-    Ok(())
-  }
-}
index 81a48bd31e584b2dbd592b99566be8d8c6eb85ee..ba0552c4ab559168399fe6342eccc454bf9dbc8b 100644 (file)
@@ -1231,7 +1231,7 @@ mod dnsdistsettings {
 
     #[derive(Deserialize, Serialize, Debug, PartialEq)]
     #[serde(deny_unknown_fields)]
-    struct LMDBKVStoreConfiguration {
+    struct LmdbKvStoreConfiguration {
         name: String,
         file_name: String,
         database_name: String,
@@ -1241,7 +1241,7 @@ mod dnsdistsettings {
 
     #[derive(Deserialize, Serialize, Debug, PartialEq)]
     #[serde(deny_unknown_fields)]
-    struct CDBKVStoreConfiguration {
+    struct CdbKvStoreConfiguration {
         name: String,
         file_name: String,
         refresh_delay: u32,
@@ -1249,7 +1249,7 @@ mod dnsdistsettings {
 
     #[derive(Deserialize, Serialize, Debug, PartialEq)]
     #[serde(deny_unknown_fields)]
-    struct KVSLookupKeySourceIPConfiguration {
+    struct KvsLookupKeySourceIpConfiguration {
         name: String,
         #[serde(default = "crate::U8::<32>::value", skip_serializing_if = "crate::U8::<32>::is_equal")]
         v4_mask: u8,
@@ -1261,7 +1261,7 @@ mod dnsdistsettings {
 
     #[derive(Deserialize, Serialize, Debug, PartialEq)]
     #[serde(deny_unknown_fields)]
-    struct KVSLookupKeyQNameConfiguration {
+    struct KvsLookupKeyQnameConfiguration {
         name: String,
         #[serde(default = "crate::Bool::<true>::value", skip_serializing_if = "crate::if_true")]
         wire_format: bool,
@@ -1269,7 +1269,7 @@ mod dnsdistsettings {
 
     #[derive(Deserialize, Serialize, Debug, PartialEq)]
     #[serde(deny_unknown_fields)]
-    struct KVSLookupKeySuffixConfiguration {
+    struct KvsLookupKeySuffixConfiguration {
         name: String,
         #[serde(default, skip_serializing_if = "crate::is_default")]
         minimum_labels: u16,
@@ -1279,33 +1279,33 @@ mod dnsdistsettings {
 
     #[derive(Deserialize, Serialize, Debug, PartialEq)]
     #[serde(deny_unknown_fields)]
-    struct KVSLookupKeyTagConfiguration {
+    struct KvsLookupKeyTagConfiguration {
         name: String,
         tag: String,
     }
 
     #[derive(Deserialize, Serialize, Debug, PartialEq)]
     #[serde(deny_unknown_fields)]
-    struct KVSLookupKeysConfiguration {
+    struct KvsLookupKeysConfiguration {
         #[serde(default, skip_serializing_if = "crate::is_default")]
-        source_ip_keys: Vec<KVSLookupKeySourceIPConfiguration>,
+        source_ip_keys: Vec<KvsLookupKeySourceIpConfiguration>,
         #[serde(default, skip_serializing_if = "crate::is_default")]
-        qname_keys: Vec<KVSLookupKeyQNameConfiguration>,
+        qname_keys: Vec<KvsLookupKeyQnameConfiguration>,
         #[serde(default, skip_serializing_if = "crate::is_default")]
-        suffix_keys: Vec<KVSLookupKeySuffixConfiguration>,
+        suffix_keys: Vec<KvsLookupKeySuffixConfiguration>,
         #[serde(default, skip_serializing_if = "crate::is_default")]
-        tag_keys: Vec<KVSLookupKeyTagConfiguration>,
+        tag_keys: Vec<KvsLookupKeyTagConfiguration>,
     }
 
     #[derive(Deserialize, Serialize, Debug, PartialEq)]
     #[serde(deny_unknown_fields)]
     struct KeyValueStoresConfiguration {
         #[serde(default, skip_serializing_if = "crate::is_default")]
-        lmdb: Vec<LMDBKVStoreConfiguration>,
+        lmdb: Vec<LmdbKvStoreConfiguration>,
         #[serde(default, skip_serializing_if = "crate::is_default")]
-        cdb: Vec<CDBKVStoreConfiguration>,
+        cdb: Vec<CdbKvStoreConfiguration>,
         #[serde(default, skip_serializing_if = "crate::is_default")]
-        lookup_keys: KVSLookupKeysConfiguration,
+        lookup_keys: KvsLookupKeysConfiguration,
     }
 
     #[derive(Deserialize, Serialize, Debug, PartialEq)]
@@ -2320,12 +2320,6 @@ impl ResponseRuleConfigurationSerde {
     Ok(())
   }
 }
-
-impl dnsdistsettings::SharedDNSResponseAction {
-  fn validate(&self) -> Result<(), ValidationError> {
-    Ok(())
-  }
-}
 // END INCLUDE ./rust-middle-in.rs
     #[derive(Deserialize, Serialize, Debug, PartialEq)]
     #[serde(deny_unknown_fields)]
@@ -2572,57 +2566,57 @@ impl Default for dnsdistsettings::ProtoBufMetaConfiguration {
 }
 
 
-impl Default for dnsdistsettings::LMDBKVStoreConfiguration {
+impl Default for dnsdistsettings::LmdbKvStoreConfiguration {
     fn default() -> Self {
-        let deserialized: dnsdistsettings::LMDBKVStoreConfiguration = serde_yaml::from_str("").unwrap();
+        let deserialized: dnsdistsettings::LmdbKvStoreConfiguration = serde_yaml::from_str("").unwrap();
         deserialized
     }
 }
 
 
-impl Default for dnsdistsettings::CDBKVStoreConfiguration {
+impl Default for dnsdistsettings::CdbKvStoreConfiguration {
     fn default() -> Self {
-        let deserialized: dnsdistsettings::CDBKVStoreConfiguration = serde_yaml::from_str("").unwrap();
+        let deserialized: dnsdistsettings::CdbKvStoreConfiguration = serde_yaml::from_str("").unwrap();
         deserialized
     }
 }
 
 
-impl Default for dnsdistsettings::KVSLookupKeySourceIPConfiguration {
+impl Default for dnsdistsettings::KvsLookupKeySourceIpConfiguration {
     fn default() -> Self {
-        let deserialized: dnsdistsettings::KVSLookupKeySourceIPConfiguration = serde_yaml::from_str("").unwrap();
+        let deserialized: dnsdistsettings::KvsLookupKeySourceIpConfiguration = serde_yaml::from_str("").unwrap();
         deserialized
     }
 }
 
 
-impl Default for dnsdistsettings::KVSLookupKeyQNameConfiguration {
+impl Default for dnsdistsettings::KvsLookupKeyQnameConfiguration {
     fn default() -> Self {
-        let deserialized: dnsdistsettings::KVSLookupKeyQNameConfiguration = serde_yaml::from_str("").unwrap();
+        let deserialized: dnsdistsettings::KvsLookupKeyQnameConfiguration = serde_yaml::from_str("").unwrap();
         deserialized
     }
 }
 
 
-impl Default for dnsdistsettings::KVSLookupKeySuffixConfiguration {
+impl Default for dnsdistsettings::KvsLookupKeySuffixConfiguration {
     fn default() -> Self {
-        let deserialized: dnsdistsettings::KVSLookupKeySuffixConfiguration = serde_yaml::from_str("").unwrap();
+        let deserialized: dnsdistsettings::KvsLookupKeySuffixConfiguration = serde_yaml::from_str("").unwrap();
         deserialized
     }
 }
 
 
-impl Default for dnsdistsettings::KVSLookupKeyTagConfiguration {
+impl Default for dnsdistsettings::KvsLookupKeyTagConfiguration {
     fn default() -> Self {
-        let deserialized: dnsdistsettings::KVSLookupKeyTagConfiguration = serde_yaml::from_str("").unwrap();
+        let deserialized: dnsdistsettings::KvsLookupKeyTagConfiguration = serde_yaml::from_str("").unwrap();
         deserialized
     }
 }
 
 
-impl Default for dnsdistsettings::KVSLookupKeysConfiguration {
+impl Default for dnsdistsettings::KvsLookupKeysConfiguration {
     fn default() -> Self {
-        let deserialized: dnsdistsettings::KVSLookupKeysConfiguration = serde_yaml::from_str("").unwrap();
+        let deserialized: dnsdistsettings::KvsLookupKeysConfiguration = serde_yaml::from_str("").unwrap();
         deserialized
     }
 }
@@ -3158,67 +3152,6 @@ impl Default for GlobalConfigurationSerde {
 }
 
 
-impl dnsdistsettings::GlobalConfiguration {
-    fn validate(&self) -> Result<(), ValidationError> {
-        for sub_type in &self.backends {
-        sub_type.validate()?;
-    }
-        for sub_type in &self.binds {
-        sub_type.validate()?;
-    }
-        for sub_type in &self.cache_hit_response_rules {
-        sub_type.validate()?;
-    }
-        for sub_type in &self.cache_inserted_response_rules {
-        sub_type.validate()?;
-    }
-        for sub_type in &self.cache_miss_rules {
-        sub_type.validate()?;
-    }
-        self.cache_settings.validate()?;
-        self.console.validate()?;
-        for sub_type in &self.dynamic_rules {
-        sub_type.validate()?;
-    }
-        self.dynamic_rules_settings.validate()?;
-        self.ebpf.validate()?;
-        self.edns_client_subnet.validate()?;
-        self.general.validate()?;
-        self.key_value_stores.validate()?;
-        self.load_balancing_policies.validate()?;
-        self.metrics.validate()?;
-        for sub_type in &self.packet_caches {
-        sub_type.validate()?;
-    }
-        for sub_type in &self.pools {
-        sub_type.validate()?;
-    }
-        self.proxy_protocol.validate()?;
-        self.query_count.validate()?;
-        for sub_type in &self.query_rules {
-        sub_type.validate()?;
-    }
-        self.remote_logging.validate()?;
-        for sub_type in &self.response_rules {
-        sub_type.validate()?;
-    }
-        self.ring_buffers.validate()?;
-        self.security_polling.validate()?;
-        for sub_type in &self.self_answered_response_rules {
-        sub_type.validate()?;
-    }
-        self.snmp.validate()?;
-        self.tuning.validate()?;
-        self.webserver.validate()?;
-        for sub_type in &self.xfr_response_rules {
-        sub_type.validate()?;
-    }
-        for sub_type in &self.xsk {
-        sub_type.validate()?;
-    }
-        Ok(())
-    }
-}
 impl dnsdistsettings::MetricsConfiguration {
     fn validate(&self) -> Result<(), ValidationError> {
         for sub_type in &self.carbon {
@@ -3253,42 +3186,37 @@ impl dnsdistsettings::DnstapLoggerConfiguration {
         Ok(())
     }
 }
-impl dnsdistsettings::ProtoBufMetaConfiguration {
-    fn validate(&self) -> Result<(), ValidationError> {
-        Ok(())
-    }
-}
-impl dnsdistsettings::LMDBKVStoreConfiguration {
+impl dnsdistsettings::LmdbKvStoreConfiguration {
     fn validate(&self) -> Result<(), ValidationError> {
         Ok(())
     }
 }
-impl dnsdistsettings::CDBKVStoreConfiguration {
+impl dnsdistsettings::CdbKvStoreConfiguration {
     fn validate(&self) -> Result<(), ValidationError> {
         Ok(())
     }
 }
-impl dnsdistsettings::KVSLookupKeySourceIPConfiguration {
+impl dnsdistsettings::KvsLookupKeySourceIpConfiguration {
     fn validate(&self) -> Result<(), ValidationError> {
         Ok(())
     }
 }
-impl dnsdistsettings::KVSLookupKeyQNameConfiguration {
+impl dnsdistsettings::KvsLookupKeyQnameConfiguration {
     fn validate(&self) -> Result<(), ValidationError> {
         Ok(())
     }
 }
-impl dnsdistsettings::KVSLookupKeySuffixConfiguration {
+impl dnsdistsettings::KvsLookupKeySuffixConfiguration {
     fn validate(&self) -> Result<(), ValidationError> {
         Ok(())
     }
 }
-impl dnsdistsettings::KVSLookupKeyTagConfiguration {
+impl dnsdistsettings::KvsLookupKeyTagConfiguration {
     fn validate(&self) -> Result<(), ValidationError> {
         Ok(())
     }
 }
-impl dnsdistsettings::KVSLookupKeysConfiguration {
+impl dnsdistsettings::KvsLookupKeysConfiguration {
     fn validate(&self) -> Result<(), ValidationError> {
         for sub_type in &self.source_ip_keys {
         sub_type.validate()?;
@@ -3464,11 +3392,6 @@ impl dnsdistsettings::OutgoingTcpConfiguration {
         Ok(())
     }
 }
-impl dnsdistsettings::ProxyProtocolValueConfiguration {
-    fn validate(&self) -> Result<(), ValidationError> {
-        Ok(())
-    }
-}
 impl dnsdistsettings::LazyHealthCheckConfiguration {
     fn validate(&self) -> Result<(), ValidationError> {
         Ok(())
@@ -3577,17 +3500,6 @@ impl dnsdistsettings::LoadBalancingPoliciesConfiguration {
         Ok(())
     }
 }
-impl dnsdistsettings::QueryRuleConfiguration {
-    fn validate(&self) -> Result<(), ValidationError> {
-        Ok(())
-    }
-}
-impl dnsdistsettings::ResponseRuleConfiguration {
-    fn validate(&self) -> Result<(), ValidationError> {
-        self.action.validate()?;
-        Ok(())
-    }
-}
 impl dnsdistsettings::XskConfiguration {
     fn validate(&self) -> Result<(), ValidationError> {
         Ok(())
index 8b1bdf951b6bc3b9dc87f9c81936dcb0673290b4..e7024b12826aeec240a0c90315186f33c882aad2 100644 (file)
@@ -245,7 +245,7 @@ dnstap_logger:
       default: 0
       description: "The number of queue entries to allocate for each output queue. According to the libfstrm library, the minimum is 2, the maximum is system-dependent and based on IOV_MAX, and the default is 64"
 
-ProtoBufMeta:
+proto_buf_meta:
   description: "Meta-data entry to be added to a Protocol Buffer message"
   parameters:
     - name: "key"
@@ -255,7 +255,7 @@ ProtoBufMeta:
       type: "String"
       description: "Value of the meta entry"
 
-LMDBKVStore:
+lmdb_kv_store:
   description: "LMDB-based key-value store"
   parameters:
     - name: "name"
@@ -272,7 +272,7 @@ LMDBKVStore:
       default: "false"
       description: "Whether to open the database with the ``MDB_NOLOCK`` flag"
 
-CDBKVStore:
+cdb_kv_store:
   description: "CDB-based key-value store"
   parameters:
     - name: "name"
@@ -285,7 +285,7 @@ CDBKVStore:
       type: "u32"
       description: "The delay in seconds between two checks of the database modification time. 0 means disabled"
 
-KVSLookupKeySourceIP:
+kvs_lookup_key_source_ip:
   description: "Lookup key that can be used with :ref:`_yaml-settings-KeyValueStoreLookupAction` or :ref:`_yaml-settings-KeyValueStoreLookupSelector`, will return the source IP of the client in network byte-order"
   parameters:
     - name: "name"
@@ -304,7 +304,7 @@ KVSLookupKeySourceIP:
       default: "false"
       description: "Whether to append the port (in network byte-order) after the address"
 
-KVSLookupKeyQName:
+kvs_lookup_key_qname:
   description: "Lookup key that can be used with :ref:`_yaml-settings-KeyValueStoreLookupAction` or :ref:`_yaml-settings-KeyValueStoreLookupSelector`, will return the qname of the query in DNS wire format"
   parameters:
     - name: "name"
@@ -315,7 +315,7 @@ KVSLookupKeyQName:
       default: "true"
       description: "Whether to do the lookup in wire format (default) or in plain text"
 
-KVSLookupKeySuffix:
+kvs_lookup_key_suffix:
   description: |
     Lookup key that can be used with :ref:`_yaml-settings-KeyValueStoreLookupAction` or :ref:`_yaml-settings-KeyValueStoreLookupSelector`, will return a vector of keys based on the labels of the qname in DNS wire format or plain text. For example if the qname is sub.domain.powerdns.com. the following keys will be returned:
 
@@ -344,7 +344,7 @@ KVSLookupKeySuffix:
       default: "true"
       description: "Whether to do the lookup in wire format (default) or in plain text"
 
-KVSLookupKeyTag:
+kvs_lookup_key_tag:
   description: "Lookup key that can be used with :ref:`_yaml-settings-KeyValueStoreLookupAction` or :ref:`_yaml-settings-KeyValueStoreLookupSelector`, will return the value of the corresponding tag for this query, if it exists"
   parameters:
     - name: "name"
@@ -352,35 +352,35 @@ KVSLookupKeyTag:
     - name: "tag"
       type: "String"
 
-KVSLookupKeys:
+kvs_lookup_keys:
   description: "List of look keys that can be used with :ref:`_yaml-settings-KeyValueStoreLookupAction` or :ref:`_yaml-settings-KeyValueStoreLookupSelector`"
   parameters:
     - name: "source_ip_keys"
-      type: "Vec<KVSLookupKeySourceIPConfiguration>"
+      type: "Vec<KvsLookupKeySourceIpConfiguration>"
       default: true
     - name: "qname_keys"
-      type: "Vec<KVSLookupKeyQNameConfiguration>"
+      type: "Vec<KvsLookupKeyQnameConfiguration>"
       default: true
     - name: "suffix_keys"
-      type: "Vec<KVSLookupKeySuffixConfiguration>"
+      type: "Vec<KvsLookupKeySuffixConfiguration>"
       default: true
     - name: "tag_keys"
-      type: "Vec<KVSLookupKeyTagConfiguration>"
+      type: "Vec<KvsLookupKeyTagConfiguration>"
       default: true
 
 key_value_stores:
   description: "List of key-value stores that can be used with :ref:`_yaml-settings-KeyValueStoreLookupAction` or :ref:`_yaml-settings-KeyValueStoreLookupSelector`"
   parameters:
     - name: "lmdb"
-      type: "Vec<LMDBKVStoreConfiguration>"
+      type: "Vec<LmdbKvStoreConfiguration>"
       default: true
       description: "List of LMDB-based key-value stores"
     - name: "cdb"
-      type: "Vec<CDBKVStoreConfiguration>"
+      type: "Vec<CdbKvStoreConfiguration>"
       default: true
       description: "List of CDB-based key-value stores"
     - name: "lookup_keys"
-      type: "KVSLookupKeysConfiguration"
+      type: "KvsLookupKeysConfiguration"
       default: true
       description: "List of lookup keys"
 
index a651c8c4c71c1f4ccdadf47f67cad575e1dfbf9a..b81e53c76a0a48fe2eebbeb1166bd8eef9dd02ed 100644 (file)
@@ -121,22 +121,10 @@ General settings for frontends
 - **xsk**: String ``("")`` - The name of an XSK sockets map to attach to this frontend, if any
 
 
-.. _yaml-settings-CDBKVStoreConfiguration:
+.. _yaml-settings-CacheSettingsConfiguration:
 
-CDBKVStoreConfiguration
------------------------
-
-CDB-based key-value store
-
-- **name**: String - The name of this object
-- **file_name**: String - The path to an existing CDB database
-- **refresh_delay**: Unsigned integer - The delay in seconds between two checks of the database modification time. 0 means disabled
-
-
-.. _yaml-settings-Cache_settingsConfiguration:
-
-Cache_settingsConfiguration
----------------------------
+CacheSettingsConfiguration
+--------------------------
 
 - **stale_entries_ttl**: Unsigned integer ``(0)``
 - **cleaning_delay**: Unsigned integer ``(60)``
@@ -157,6 +145,18 @@ Carbon endpoint to send metrics to
 - **instance**: String ``("")`` - An optional string specifying the instance name that should be used
 
 
+.. _yaml-settings-CdbKvStoreConfiguration:
+
+CdbKvStoreConfiguration
+-----------------------
+
+CDB-based key-value store
+
+- **name**: String - The name of this object
+- **file_name**: String - The path to an existing CDB database
+- **refresh_delay**: Unsigned integer - The delay in seconds between two checks of the database modification time. 0 means disabled
+
+
 .. _yaml-settings-ConsoleConfiguration:
 
 ConsoleConfiguration
@@ -172,10 +172,10 @@ Console-related settings
 - **max_concurrent_connections**: Unsigned integer ``(0)`` - Set the maximum number of concurrent console connection
 
 
-.. _yaml-settings-Custom_load_balancing_policyConfiguration:
+.. _yaml-settings-CustomLoadBalancingPolicyConfiguration:
 
-Custom_load_balancing_policyConfiguration
------------------------------------------
+CustomLoadBalancingPolicyConfiguration
+--------------------------------------
 
 - **name**: String
 - **function_name**: String ``("")``
@@ -185,10 +185,10 @@ Custom_load_balancing_policyConfiguration
 - **per_thread**: Boolean ``(false)``
 
 
-.. _yaml-settings-Dnstap_loggerConfiguration:
+.. _yaml-settings-DnstapLoggerConfiguration:
 
-Dnstap_loggerConfiguration
---------------------------
+DnstapLoggerConfiguration
+-------------------------
 
 Endpoint to send queries and/or responses data to, using the dnstap format
 
@@ -203,10 +203,10 @@ Endpoint to send queries and/or responses data to, using the dnstap format
 - **reopen_interval**: Unsigned integer ``(0)`` - The number of queue entries to allocate for each output queue. According to the libfstrm library, the minimum is 2, the maximum is system-dependent and based on IOV_MAX, and the default is 64
 
 
-.. _yaml-settings-Doh_tuningConfiguration:
+.. _yaml-settings-DohTuningConfiguration:
 
-Doh_tuningConfiguration
------------------------
+DohTuningConfiguration
+----------------------
 
 - **outgoing_worker_threads**: Unsigned integer ``(10)``
 - **outgoing_max_idle_time**: Unsigned integer ``(300)``
@@ -214,10 +214,10 @@ Doh_tuningConfiguration
 - **outgoing_max_idle_connection_per_backend**: Unsigned integer ``(10)``
 
 
-.. _yaml-settings-Dynamic_ruleConfiguration:
+.. _yaml-settings-DynamicRuleConfiguration:
 
-Dynamic_ruleConfiguration
--------------------------
+DynamicRuleConfiguration
+------------------------
 
 Dynamic rule settings
 
@@ -241,10 +241,10 @@ Dynamic rule settings
 - **minimum_global_cache_hit_ratio**: Double ``(0.0)`` - The minimum global cache-hit ratio (over all pools, so ``cache-hits`` / (``cache-hits`` + ``cache-misses``)) for a ``cache-miss-ratio`` rule to be applied
 
 
-.. _yaml-settings-Dynamic_rulesConfiguration:
+.. _yaml-settings-DynamicRulesConfiguration:
 
-Dynamic_rulesConfiguration
---------------------------
+DynamicRulesConfiguration
+-------------------------
 
 Group of dynamic rules
 
@@ -258,10 +258,10 @@ Group of dynamic rules
 - **rules**: Sequence of :ref:`DynamicRuleConfiguration <yaml-settings-DynamicRuleConfiguration>` - List of dynamic rules in this group
 
 
-.. _yaml-settings-Dynamic_rules_settingsConfiguration:
+.. _yaml-settings-DynamicRulesSettingsConfiguration:
 
-Dynamic_rules_settingsConfiguration
------------------------------------
+DynamicRulesSettingsConfiguration
+---------------------------------
 
 Dynamic rules-related settings
 
@@ -284,10 +284,10 @@ EbpfConfiguration
 - **external**: Boolean ``(false)`` - If set to true, :program:`dnsdist` does not load the internal ``eBPF`` program. This is useful for ``AF_XDP`` and ``XDP`` maps
 
 
-.. _yaml-settings-Ebpf_mapConfiguration:
+.. _yaml-settings-EbpfMapConfiguration:
 
-Ebpf_mapConfiguration
----------------------
+EbpfMapConfiguration
+--------------------
 
 An ``eBPF`` map that is used to share data with kernel-land ``AF_XDP``/``XSK``, ``socket filter`` or ``XDP`` programs. Maps can be pinned to a filesystem path, which makes their content persistent across restarts and allows external programs to read their content and to add new entries. :program:`dnsdist` will try to load maps that are pinned to a filesystem path on startups, inheriting any existing entries, and fall back to creating them if they do not exist yet. Note that the user :program`dnsdist` is running under must have the right privileges to read and write to the given file, and to go through all the directories in the path leading to that file. The pinned path must be on a filesystem of type ``BPF``, usually below ``/sys/fs/bpf/``
 
@@ -295,10 +295,10 @@ An ``eBPF`` map that is used to share data with kernel-land ``AF_XDP``/``XSK``,
 - **pinned_path**: String ``("")`` - The filesystem path this map should be pinned to
 
 
-.. _yaml-settings-Edns_client_subnetConfiguration:
+.. _yaml-settings-EdnsClientSubnetConfiguration:
 
-Edns_client_subnetConfiguration
--------------------------------
+EdnsClientSubnetConfiguration
+-----------------------------
 
 EDNS Client Subnet-related settings
 
@@ -323,10 +323,10 @@ GeneralConfiguration
 - **capabilities_to_retain**: Sequence of String
 
 
-.. _yaml-settings-Health_checkConfiguration:
+.. _yaml-settings-HealthCheckConfiguration:
 
-Health_checkConfiguration
--------------------------
+HealthCheckConfiguration
+------------------------
 
 Health-checks related settings for backends
 
@@ -347,10 +347,10 @@ Health-checks related settings for backends
 - **lazy**: :ref:`LazyHealthCheckConfiguration <yaml-settings-LazyHealthCheckConfiguration>` - Settings for lazy health-checks
 
 
-.. _yaml-settings-Http_custom_response_headerConfiguration:
+.. _yaml-settings-HttpCustomResponseHeaderConfiguration:
 
-Http_custom_response_headerConfiguration
-----------------------------------------
+HttpCustomResponseHeaderConfiguration
+-------------------------------------
 
 List of custom HTTP headers
 
@@ -358,10 +358,10 @@ List of custom HTTP headers
 - **value**: String - The value part of the header
 
 
-.. _yaml-settings-Http_responses_mapConfiguration:
+.. _yaml-settings-HttpResponsesMapConfiguration:
 
-Http_responses_mapConfiguration
--------------------------------
+HttpResponsesMapConfiguration
+-----------------------------
 
 An entry of an HTTP response map. Every query that matches the regular expression supplied in ``expression`` will be immediately answered with a HTTP response.
 The status of the HTTP response will be the one supplied by ``status``, and the content set to the one supplied by ``content``, except if the status is a redirection (3xx) in which case the content is expected to be the URL to redirect to.
@@ -373,32 +373,32 @@ The status of the HTTP response will be the one supplied by ``status``, and the
 - **headers**: Sequence of :ref:`HttpCustomResponseHeaderConfiguration <yaml-settings-HttpCustomResponseHeaderConfiguration>` - The custom headers to set for the HTTP response, if any. The default is to use the value of the ``custom_response_headers`` parameter of the frontend
 
 
-.. _yaml-settings-Incoming_dnscryptConfiguration:
+.. _yaml-settings-IncomingDnscryptCertificateKeyPairConfiguration:
 
-Incoming_dnscryptConfiguration
-------------------------------
+IncomingDnscryptCertificateKeyPairConfiguration
+-----------------------------------------------
 
-Settings for DNSCrypt frontends
+Certificate and associated key for DNSCrypt frontends
 
-- **provider_name**: String ``("")`` - The DNSCrypt provider name for this frontend
-- **certificates**: Sequence of :ref:`IncomingDnscryptCertificateKeyPairConfiguration <yaml-settings-IncomingDnscryptCertificateKeyPairConfiguration>` - List of certificates and associated keys
+- **certificate**: String - The path to a DNSCrypt certificate file
+- **key**: String - The path to the private key file corresponding to the certificate, or a list of paths to such files, whose order should match the certFile(s) ones
 
 
-.. _yaml-settings-Incoming_dnscrypt_certificate_key_pairConfiguration:
+.. _yaml-settings-IncomingDnscryptConfiguration:
 
-Incoming_dnscrypt_certificate_key_pairConfiguration
----------------------------------------------------
+IncomingDnscryptConfiguration
+-----------------------------
 
-Certificate and associated key for DNSCrypt frontends
+Settings for DNSCrypt frontends
 
-- **certificate**: String - The path to a DNSCrypt certificate file
-- **key**: String - The path to the private key file corresponding to the certificate, or a list of paths to such files, whose order should match the certFile(s) ones
+- **provider_name**: String ``("")`` - The DNSCrypt provider name for this frontend
+- **certificates**: Sequence of :ref:`IncomingDnscryptCertificateKeyPairConfiguration <yaml-settings-IncomingDnscryptCertificateKeyPairConfiguration>` - List of certificates and associated keys
 
 
-.. _yaml-settings-Incoming_dohConfiguration:
+.. _yaml-settings-IncomingDohConfiguration:
 
-Incoming_dohConfiguration
--------------------------
+IncomingDohConfiguration
+------------------------
 
 The DNS over HTTP(s) parameters of a frontend
 
@@ -416,20 +416,20 @@ The DNS over HTTP(s) parameters of a frontend
 - **responses_map**: Sequence of :ref:`HttpResponsesMapConfiguration <yaml-settings-HttpResponsesMapConfiguration>` - Set a list of HTTP response rules allowing to intercept HTTP queries very early, before the DNS payload has been processed, and send custom responses including error pages, redirects and static content
 
 
-.. _yaml-settings-Incoming_doqConfiguration:
+.. _yaml-settings-IncomingDoqConfiguration:
 
-Incoming_doqConfiguration
--------------------------
+IncomingDoqConfiguration
+------------------------
 
 Settings for DNS over QUIC frontends
 
 - **max_concurrent_queries_per_connection**: Unsigned integer ``(65535)`` - Maximum number of in-flight queries on a single connection
 
 
-.. _yaml-settings-Incoming_quicConfiguration:
+.. _yaml-settings-IncomingQuicConfiguration:
 
-Incoming_quicConfiguration
---------------------------
+IncomingQuicConfiguration
+-------------------------
 
 QUIC settings for DNS over QUIC and DNS over HTTP/3 frontends
 
@@ -438,10 +438,10 @@ QUIC settings for DNS over QUIC and DNS over HTTP/3 frontends
 - **internal_pipe_buffer_size**: Unsigned integer ``(1048576)`` - Set the size in bytes of the internal buffer of the pipes used internally to pass queries and responses between threads. Requires support for ``F_SETPIPE_SZ`` which is present in Linux since 2.6.35. The actual size might be rounded up to a multiple of a page size. 0 means that the OS default size is used
 
 
-.. _yaml-settings-Incoming_tcpConfiguration:
+.. _yaml-settings-IncomingTcpConfiguration:
 
-Incoming_tcpConfiguration
--------------------------
+IncomingTcpConfiguration
+------------------------
 
 TCP-related settings for frontends
 
@@ -451,10 +451,22 @@ TCP-related settings for frontends
 - **max_concurrent_connections**: Unsigned integer ``(0)`` - Maximum number of concurrent incoming TCP connections to this frontend. The default is 0 which means unlimited
 
 
-.. _yaml-settings-Incoming_tlsConfiguration:
+.. _yaml-settings-IncomingTlsCertificateKeyPairConfiguration:
+
+IncomingTlsCertificateKeyPairConfiguration
+------------------------------------------
+
+A pair of TLS certificate and key, with an optional associated password
+
+- **certificate**: String - A path to a file containing the certificate, in ``PEM``, ``DER`` or ``PKCS12`` format
+- **key**: String ``("")`` - A path to a file containing the key corresponding to the certificate, in ``PEM``, ``DER`` or ``PKCS12`` format
+- **password**: String ``("")`` - Password protecting the PKCS12 file if appropriate
 
-Incoming_tlsConfiguration
--------------------------
+
+.. _yaml-settings-IncomingTlsConfiguration:
+
+IncomingTlsConfiguration
+------------------------
 
 TLS parameters for frontends
 
@@ -481,21 +493,21 @@ TLS parameters for frontends
 - **ignore_configuration_errors**: Boolean ``(false)`` - Ignore TLS configuration errors (such as invalid certificate path) and just issue a warning instead of aborting the whole process
 
 
-.. _yaml-settings-Incoming_tls_certificate_key_pairConfiguration:
+.. _yaml-settings-KeyValueStoresConfiguration:
 
-Incoming_tls_certificate_key_pairConfiguration
-----------------------------------------------
+KeyValueStoresConfiguration
+---------------------------
 
-A pair of TLS certificate and key, with an optional associated password
+List of key-value stores that can be used with :ref:`_yaml-settings-KeyValueStoreLookupAction` or :ref:`_yaml-settings-KeyValueStoreLookupSelector`
 
-- **certificate**: String - A path to a file containing the certificate, in ``PEM``, ``DER`` or ``PKCS12`` format
-- **key**: String ``("")`` - A path to a file containing the key corresponding to the certificate, in ``PEM``, ``DER`` or ``PKCS12`` format
-- **password**: String ``("")`` - Password protecting the PKCS12 file if appropriate
+- **lmdb**: Sequence of :ref:`LmdbKvStoreConfiguration <yaml-settings-LmdbKvStoreConfiguration>` - List of LMDB-based key-value stores
+- **cdb**: Sequence of :ref:`CdbKvStoreConfiguration <yaml-settings-CdbKvStoreConfiguration>` - List of CDB-based key-value stores
+- **lookup_keys**: :ref:`KvsLookupKeysConfiguration <yaml-settings-KvsLookupKeysConfiguration>` - List of lookup keys
 
 
-.. _yaml-settings-KVSLookupKeyQNameConfiguration:
+.. _yaml-settings-KvsLookupKeyQnameConfiguration:
 
-KVSLookupKeyQNameConfiguration
+KvsLookupKeyQnameConfiguration
 ------------------------------
 
 Lookup key that can be used with :ref:`_yaml-settings-KeyValueStoreLookupAction` or :ref:`_yaml-settings-KeyValueStoreLookupSelector`, will return the qname of the query in DNS wire format
@@ -504,9 +516,9 @@ Lookup key that can be used with :ref:`_yaml-settings-KeyValueStoreLookupAction`
 - **wire_format**: Boolean ``(true)`` - Whether to do the lookup in wire format (default) or in plain text
 
 
-.. _yaml-settings-KVSLookupKeySourceIPConfiguration:
+.. _yaml-settings-KvsLookupKeySourceIpConfiguration:
 
-KVSLookupKeySourceIPConfiguration
+KvsLookupKeySourceIpConfiguration
 ---------------------------------
 
 Lookup key that can be used with :ref:`_yaml-settings-KeyValueStoreLookupAction` or :ref:`_yaml-settings-KeyValueStoreLookupSelector`, will return the source IP of the client in network byte-order
@@ -517,9 +529,9 @@ Lookup key that can be used with :ref:`_yaml-settings-KeyValueStoreLookupAction`
 - **include_port**: Boolean ``(false)`` - Whether to append the port (in network byte-order) after the address
 
 
-.. _yaml-settings-KVSLookupKeySuffixConfiguration:
+.. _yaml-settings-KvsLookupKeySuffixConfiguration:
 
-KVSLookupKeySuffixConfiguration
+KvsLookupKeySuffixConfiguration
 -------------------------------
 
 Lookup key that can be used with :ref:`_yaml-settings-KeyValueStoreLookupAction` or :ref:`_yaml-settings-KeyValueStoreLookupSelector`, will return a vector of keys based on the labels of the qname in DNS wire format or plain text. For example if the qname is sub.domain.powerdns.com. the following keys will be returned:
@@ -542,9 +554,9 @@ If ``min_labels`` is set to a value larger than ``0`` the lookup will only be do
 - **wire_format**: Boolean ``(true)`` - Whether to do the lookup in wire format (default) or in plain text
 
 
-.. _yaml-settings-KVSLookupKeyTagConfiguration:
+.. _yaml-settings-KvsLookupKeyTagConfiguration:
 
-KVSLookupKeyTagConfiguration
+KvsLookupKeyTagConfiguration
 ----------------------------
 
 Lookup key that can be used with :ref:`_yaml-settings-KeyValueStoreLookupAction` or :ref:`_yaml-settings-KeyValueStoreLookupSelector`, will return the value of the corresponding tag for this query, if it exists
@@ -553,34 +565,38 @@ Lookup key that can be used with :ref:`_yaml-settings-KeyValueStoreLookupAction`
 - **tag**: String
 
 
-.. _yaml-settings-KVSLookupKeysConfiguration:
+.. _yaml-settings-KvsLookupKeysConfiguration:
 
-KVSLookupKeysConfiguration
+KvsLookupKeysConfiguration
 --------------------------
 
 List of look keys that can be used with :ref:`_yaml-settings-KeyValueStoreLookupAction` or :ref:`_yaml-settings-KeyValueStoreLookupSelector`
 
-- **source_ip_keys**: Sequence of :ref:`KVSLookupKeySourceIPConfiguration <yaml-settings-KVSLookupKeySourceIPConfiguration>`
-- **qname_keys**: Sequence of :ref:`KVSLookupKeyQNameConfiguration <yaml-settings-KVSLookupKeyQNameConfiguration>`
-- **suffix_keys**: Sequence of :ref:`KVSLookupKeySuffixConfiguration <yaml-settings-KVSLookupKeySuffixConfiguration>`
-- **tag_keys**: Sequence of :ref:`KVSLookupKeyTagConfiguration <yaml-settings-KVSLookupKeyTagConfiguration>`
+- **source_ip_keys**: Sequence of :ref:`KvsLookupKeySourceIpConfiguration <yaml-settings-KvsLookupKeySourceIpConfiguration>`
+- **qname_keys**: Sequence of :ref:`KvsLookupKeyQnameConfiguration <yaml-settings-KvsLookupKeyQnameConfiguration>`
+- **suffix_keys**: Sequence of :ref:`KvsLookupKeySuffixConfiguration <yaml-settings-KvsLookupKeySuffixConfiguration>`
+- **tag_keys**: Sequence of :ref:`KvsLookupKeyTagConfiguration <yaml-settings-KvsLookupKeyTagConfiguration>`
 
 
-.. _yaml-settings-Key_value_storesConfiguration:
+.. _yaml-settings-LazyHealthCheckConfiguration:
 
-Key_value_storesConfiguration
------------------------------
+LazyHealthCheckConfiguration
+----------------------------
 
-List of key-value stores that can be used with :ref:`_yaml-settings-KeyValueStoreLookupAction` or :ref:`_yaml-settings-KeyValueStoreLookupSelector`
+Lazy health-check related settings for backends
 
-- **lmdb**: Sequence of :ref:`LMDBKVStoreConfiguration <yaml-settings-LMDBKVStoreConfiguration>` - List of LMDB-based key-value stores
-- **cdb**: Sequence of :ref:`CDBKVStoreConfiguration <yaml-settings-CDBKVStoreConfiguration>` - List of CDB-based key-value stores
-- **lookup_keys**: :ref:`KVSLookupKeysConfiguration <yaml-settings-KVSLookupKeysConfiguration>` - List of lookup keys
+- **interval**: Unsigned integer ``(30)`` - The interval, in seconds, between health-check queries in 'lazy' mode. Note that when ``use_exponential_back_off`` is set to true, the interval doubles between every queries. These queries are only sent when a threshold of failing regular queries has been reached, and until the backend is available again
+- **min_sample_count**: Unsigned integer ``(1)`` - The minimum amount of regular queries that should have been recorded before the ``threshold`` threshold can be applied
+- **mode**: String ``(TimeoutOrServFail)`` - The 'lazy' health-check mode: ``TimeoutOnly`` means that only timeout and I/O errors of regular queries will be considered for the ``threshold``, while ``TimeoutOrServFail`` will also consider ``Server Failure`` answers. Supported values are: TimeoutOnly, TimeoutOrServFail
+- **sample_size**: Unsigned integer ``(100)`` - The maximum size of the sample of queries to record and consider for the ``threshold``. Default is 100, which means the result (failure or success) of the last 100 queries will be considered
+- **threshold**: Unsigned integer ``(20)`` - The threshold, as a percentage, of queries that should fail for the 'lazy' health-check to be triggered. The default is 20 which means 20% of the last ``sample_size`` queries should fail for a health-check to be triggered
+- **use_exponential_back_off**: Boolean ``(false)`` - Whether the 'lazy' health-check should use an exponential back-off instead of a fixed value, between health-check probes. The default is false which means that after a backend has been moved to the ``down`` state health-check probes are sent every ``interval`` seconds. When set to true, the delay between each probe starts at ``interval`` seconds and doubles between every probe, capped at ``max_back_off`` seconds
+- **max_back_off**: Unsigned integer ``(3600)`` - This value, in seconds, caps the time between two health-check queries when ``use_exponential_back_off`` is set to true. The default is 3600 which means that at most one hour will pass between two health-check queries
 
 
-.. _yaml-settings-LMDBKVStoreConfiguration:
+.. _yaml-settings-LmdbKvStoreConfiguration:
 
-LMDBKVStoreConfiguration
+LmdbKvStoreConfiguration
 ------------------------
 
 LMDB-based key-value store
@@ -591,26 +607,10 @@ LMDB-based key-value store
 - **no_lock**: Boolean ``(false)`` - Whether to open the database with the ``MDB_NOLOCK`` flag
 
 
-.. _yaml-settings-Lazy_health_checkConfiguration:
-
-Lazy_health_checkConfiguration
-------------------------------
-
-Lazy health-check related settings for backends
-
-- **interval**: Unsigned integer ``(30)`` - The interval, in seconds, between health-check queries in 'lazy' mode. Note that when ``use_exponential_back_off`` is set to true, the interval doubles between every queries. These queries are only sent when a threshold of failing regular queries has been reached, and until the backend is available again
-- **min_sample_count**: Unsigned integer ``(1)`` - The minimum amount of regular queries that should have been recorded before the ``threshold`` threshold can be applied
-- **mode**: String ``(TimeoutOrServFail)`` - The 'lazy' health-check mode: ``TimeoutOnly`` means that only timeout and I/O errors of regular queries will be considered for the ``threshold``, while ``TimeoutOrServFail`` will also consider ``Server Failure`` answers. Supported values are: TimeoutOnly, TimeoutOrServFail
-- **sample_size**: Unsigned integer ``(100)`` - The maximum size of the sample of queries to record and consider for the ``threshold``. Default is 100, which means the result (failure or success) of the last 100 queries will be considered
-- **threshold**: Unsigned integer ``(20)`` - The threshold, as a percentage, of queries that should fail for the 'lazy' health-check to be triggered. The default is 20 which means 20% of the last ``sample_size`` queries should fail for a health-check to be triggered
-- **use_exponential_back_off**: Boolean ``(false)`` - Whether the 'lazy' health-check should use an exponential back-off instead of a fixed value, between health-check probes. The default is false which means that after a backend has been moved to the ``down`` state health-check probes are sent every ``interval`` seconds. When set to true, the delay between each probe starts at ``interval`` seconds and doubles between every probe, capped at ``max_back_off`` seconds
-- **max_back_off**: Unsigned integer ``(3600)`` - This value, in seconds, caps the time between two health-check queries when ``use_exponential_back_off`` is set to true. The default is 3600 which means that at most one hour will pass between two health-check queries
-
-
-.. _yaml-settings-Load_balancing_policiesConfiguration:
+.. _yaml-settings-LoadBalancingPoliciesConfiguration:
 
-Load_balancing_policiesConfiguration
-------------------------------------
+LoadBalancingPoliciesConfiguration
+----------------------------------
 
 - **default_policy**: String ``(leastOutstanding)``
 - **servfail_on_no_server**: Boolean ``(false)``
@@ -631,10 +631,10 @@ Metrics-related settings
 - **carbon**: Sequence of :ref:`CarbonConfiguration <yaml-settings-CarbonConfiguration>` - List of Carbon endpoints to send metrics to
 
 
-.. _yaml-settings-Outgoing_auto_upgradeConfiguration:
+.. _yaml-settings-OutgoingAutoUpgradeConfiguration:
 
-Outgoing_auto_upgradeConfiguration
-----------------------------------
+OutgoingAutoUpgradeConfiguration
+--------------------------------
 
 Setting for the automatically upgraded backend to a more secure version of the DNS protocol
 
@@ -646,10 +646,10 @@ Setting for the automatically upgraded backend to a more secure version of the D
 - **use_lazy_health_check**: Boolean ``(false)`` - Whether the auto-upgraded version of this backend should use the lazy health-checking mode. Default is false, which means it will use the regular health-checking mode
 
 
-.. _yaml-settings-Outgoing_dohConfiguration:
+.. _yaml-settings-OutgoingDohConfiguration:
 
-Outgoing_dohConfiguration
--------------------------
+OutgoingDohConfiguration
+------------------------
 
 DNS over HTTPS specific settings for backends
 
@@ -657,10 +657,10 @@ DNS over HTTPS specific settings for backends
 - **add_x_forwarded_headers**: Boolean ``(false)`` - Whether to add X-Forwarded-For, X-Forwarded-Port and X-Forwarded-Proto headers to the backend
 
 
-.. _yaml-settings-Outgoing_tcpConfiguration:
+.. _yaml-settings-OutgoingTcpConfiguration:
 
-Outgoing_tcpConfiguration
--------------------------
+OutgoingTcpConfiguration
+------------------------
 
 TCP-related settings for backends
 
@@ -671,10 +671,10 @@ TCP-related settings for backends
 - **fast_open**: Boolean ``(false)`` - Whether to enable TCP Fast Open
 
 
-.. _yaml-settings-Outgoing_tlsConfiguration:
+.. _yaml-settings-OutgoingTlsConfiguration:
 
-Outgoing_tlsConfiguration
--------------------------
+OutgoingTlsConfiguration
+------------------------
 
 TLS parameters for backends
 
@@ -691,10 +691,10 @@ TLS parameters for backends
 - **ktls**: Boolean ``(false)`` - Whether to enable the experimental kernel TLS support on Linux, if both the kernel and the OpenSSL library support it. Default is false. Currently both DoT and DoH backend support this option
 
 
-.. _yaml-settings-Packet_cacheConfiguration:
+.. _yaml-settings-PacketCacheConfiguration:
 
-Packet_cacheConfiguration
--------------------------
+PacketCacheConfiguration
+------------------------
 
 - **name**: String
 - **size**: Unsigned integer
@@ -734,10 +734,10 @@ Meta-data entry to be added to a Protocol Buffer message
 - **value**: String - Value of the meta entry
 
 
-.. _yaml-settings-Protobuf_loggerConfiguration:
+.. _yaml-settings-ProtobufLoggerConfiguration:
 
-Protobuf_loggerConfiguration
-----------------------------
+ProtobufLoggerConfiguration
+---------------------------
 
 Endpoint to send queries and/or responses data to, using the native PowerDNS format
 
@@ -748,20 +748,20 @@ Endpoint to send queries and/or responses data to, using the native PowerDNS for
 - **reconnect_wait_time**: Unsigned integer ``(1)`` - Time in seconds between reconnection attempts
 
 
-.. _yaml-settings-Proxy_protocolConfiguration:
+.. _yaml-settings-ProxyProtocolConfiguration:
 
-Proxy_protocolConfiguration
----------------------------
+ProxyProtocolConfiguration
+--------------------------
 
 - **acl**: Sequence of String ``("")``
 - **maximum_payload_size**: Unsigned integer ``(512)``
 - **apply_acl_to_proxied_clients**: Boolean ``(false)``
 
 
-.. _yaml-settings-Proxy_protocol_valueConfiguration:
+.. _yaml-settings-ProxyProtocolValueConfiguration:
 
-Proxy_protocol_valueConfiguration
----------------------------------
+ProxyProtocolValueConfiguration
+-------------------------------
 
 A proxy protocol Type-Length Value entry
 
@@ -769,10 +769,10 @@ A proxy protocol Type-Length Value entry
 - **value**: String - The value of the proxy protocol entry
 
 
-.. _yaml-settings-Query_countConfiguration:
+.. _yaml-settings-QueryCountConfiguration:
 
-Query_countConfiguration
-------------------------
+QueryCountConfiguration
+-----------------------
 
 - **enabled**: Boolean ``(false)``
 - **filter_function_name**: String ``("")``
@@ -780,10 +780,10 @@ Query_countConfiguration
 - **filter_function_file**: String ``("")``
 
 
-.. _yaml-settings-Query_ruleConfiguration:
+.. _yaml-settings-QueryRuleConfiguration:
 
-Query_ruleConfiguration
------------------------
+QueryRuleConfiguration
+----------------------
 
 A rule that can applied on queries
 
@@ -793,10 +793,10 @@ A rule that can applied on queries
 - **action**: :ref:`Action <yaml-settings-Action>` - The action taken if the selector matches
 
 
-.. _yaml-settings-Remote_loggingConfiguration:
+.. _yaml-settings-RemoteLoggingConfiguration:
 
-Remote_loggingConfiguration
----------------------------
+RemoteLoggingConfiguration
+--------------------------
 
 Queries and/or responses remote logging settings
 
@@ -804,10 +804,10 @@ Queries and/or responses remote logging settings
 - **dnstap_loggers**: Sequence of :ref:`DnstapLoggerConfiguration <yaml-settings-DnstapLoggerConfiguration>` - List of endpoints to send queries and/or responses data to, using the dnstap format
 
 
-.. _yaml-settings-Response_ruleConfiguration:
+.. _yaml-settings-ResponseRuleConfiguration:
 
-Response_ruleConfiguration
---------------------------
+ResponseRuleConfiguration
+-------------------------
 
 A rule that can applied on responses
 
@@ -817,10 +817,10 @@ A rule that can applied on responses
 - **action**: :ref:`ResponseAction <yaml-settings-ResponseAction>` - The action taken if the selector matches
 
 
-.. _yaml-settings-Ring_buffersConfiguration:
+.. _yaml-settings-RingBuffersConfiguration:
 
-Ring_buffersConfiguration
--------------------------
+RingBuffersConfiguration
+------------------------
 
 Settings for in-memory ring buffers, that are used for live traffic inspection and dynamic rules
 
@@ -831,10 +831,10 @@ Settings for in-memory ring buffers, that are used for live traffic inspection a
 - **record_responses**: Boolean ``(true)`` - Whether to record responses in the ring buffers
 
 
-.. _yaml-settings-Security_pollingConfiguration:
+.. _yaml-settings-SecurityPollingConfiguration:
 
-Security_pollingConfiguration
------------------------------
+SecurityPollingConfiguration
+----------------------------
 
 - **polling_interval**: Unsigned integer ``(3600)``
 - **suffix**: String ``(secpoll.powerdns.com.)``
@@ -850,10 +850,10 @@ SnmpConfiguration
 - **daemon_socket**: String ``("")``
 
 
-.. _yaml-settings-Tcp_tuningConfiguration:
+.. _yaml-settings-TcpTuningConfiguration:
 
-Tcp_tuningConfiguration
------------------------
+TcpTuningConfiguration
+----------------------
 
 - **worker_threads**: Unsigned integer ``(10)``
 - **receive_timeout**: Unsigned integer ``(2)``
@@ -869,10 +869,10 @@ Tcp_tuningConfiguration
 - **fast_open_key**: String ``("")``
 
 
-.. _yaml-settings-Tls_tuningConfiguration:
+.. _yaml-settings-TlsTuningConfiguration:
 
-Tls_tuningConfiguration
------------------------
+TlsTuningConfiguration
+----------------------
 
 - **outgoing_tickets_cache_cleanup_delay**: Unsigned integer ``(60)``
 - **outgoing_tickets_cache_validity**: Unsigned integer ``(600)``
@@ -892,10 +892,10 @@ Tuning settings
 - **udp**: :ref:`UdpTuningConfiguration <yaml-settings-UdpTuningConfiguration>` - UDP-related tuning settings
 
 
-.. _yaml-settings-Udp_tuningConfiguration:
+.. _yaml-settings-UdpTuningConfiguration:
 
-Udp_tuningConfiguration
------------------------
+UdpTuningConfiguration
+----------------------
 
 - **messages_per_round**: Unsigned integer ``(1)``
 - **send_buffer_size**: Unsigned integer ``(0)``