datadog_agent_config/generated/
witness.rs

1// @generated by build.rs from core_schema.yaml + schema_overlay.yaml — DO NOT EDIT
2// Regenerate by running `cargo build -p datadog-agent-config`.
3#![allow(clippy::all, dead_code, missing_docs, unused)]
4
5use std::collections::HashMap;
6
7use super::datadog_configuration::*;
8use crate::translate_error::{TranslateError, TranslateErrors};
9
10/// Witness trait over every supported Datadog configuration key.
11///
12/// One `consume_<key>` method per `support: full` / `support: partial` key from the Datadog
13/// schema overlay. This trait must be implemented by hand to ensure that each supported value
14/// from Datadog configuration finds a home in Saluki configuration.
15pub trait DatadogConfigWitness {
16    fn consume_additional_endpoints(&mut self, value: HashMap<String, Vec<String>>);
17    fn consume_agent_ipc_grpc_max_message_size(&mut self, value: i64);
18    fn consume_aggregator_stop_timeout(&mut self, value: i64);
19    fn consume_allow_arbitrary_tags(&mut self, value: bool);
20    fn consume_api_key(&mut self, value: String);
21    fn consume_apm_config_compute_stats_by_span_kind(&mut self, value: bool);
22    fn consume_apm_config_enable_rare_sampler(&mut self, value: bool);
23    fn consume_apm_config_error_tracking_standalone_enabled(&mut self, value: bool);
24    fn consume_apm_config_errors_per_second(&mut self, value: f64);
25    fn consume_apm_config_extra_sample_rate(&mut self, value: f64);
26    fn consume_apm_config_features(&mut self, value: Vec<String>);
27    fn consume_apm_config_max_catalog_entries(&mut self, value: i64);
28    fn consume_apm_config_max_traces_per_second(&mut self, value: f64);
29    fn consume_apm_config_obfuscation_credit_cards_enabled(&mut self, value: bool);
30    fn consume_apm_config_obfuscation_credit_cards_keep_values(&mut self, value: Vec<String>);
31    fn consume_apm_config_obfuscation_credit_cards_luhn(&mut self, value: bool);
32    fn consume_apm_config_obfuscation_elasticsearch_enabled(&mut self, value: bool);
33    fn consume_apm_config_obfuscation_elasticsearch_keep_values(&mut self, value: Vec<String>);
34    fn consume_apm_config_obfuscation_elasticsearch_obfuscate_sql_values(&mut self, value: Vec<String>);
35    fn consume_apm_config_obfuscation_http_remove_paths_with_digits(&mut self, value: bool);
36    fn consume_apm_config_obfuscation_http_remove_query_string(&mut self, value: bool);
37    fn consume_apm_config_obfuscation_memcached_enabled(&mut self, value: bool);
38    fn consume_apm_config_obfuscation_memcached_keep_command(&mut self, value: bool);
39    fn consume_apm_config_obfuscation_mongodb_enabled(&mut self, value: bool);
40    fn consume_apm_config_obfuscation_mongodb_keep_values(&mut self, value: Vec<String>);
41    fn consume_apm_config_obfuscation_mongodb_obfuscate_sql_values(&mut self, value: Vec<String>);
42    fn consume_apm_config_obfuscation_opensearch_enabled(&mut self, value: bool);
43    fn consume_apm_config_obfuscation_opensearch_keep_values(&mut self, value: Vec<String>);
44    fn consume_apm_config_obfuscation_opensearch_obfuscate_sql_values(&mut self, value: Vec<String>);
45    fn consume_apm_config_obfuscation_redis_enabled(&mut self, value: bool);
46    fn consume_apm_config_obfuscation_redis_remove_all_args(&mut self, value: bool);
47    fn consume_apm_config_obfuscation_valkey_enabled(&mut self, value: bool);
48    fn consume_apm_config_obfuscation_valkey_remove_all_args(&mut self, value: bool);
49    fn consume_apm_config_peer_tags(&mut self, value: Vec<String>);
50    fn consume_apm_config_peer_tags_aggregation(&mut self, value: bool);
51    fn consume_apm_config_probabilistic_sampler_enabled(&mut self, value: bool);
52    fn consume_apm_config_probabilistic_sampler_hash_seed(&mut self, value: i64);
53    fn consume_apm_config_probabilistic_sampler_sampling_percentage(&mut self, value: f64);
54    fn consume_apm_config_replace_tags(&mut self, value: Vec<HashMap<String, String>>);
55    fn consume_apm_config_target_traces_per_second(&mut self, value: f64);
56    fn consume_auth_token_file_path(&mut self, value: String);
57    fn consume_autoscaling_failover_enabled(&mut self, value: bool);
58    fn consume_autoscaling_failover_metrics(&mut self, value: Vec<String>);
59    fn consume_basic_telemetry_add_container_tags(&mut self, value: bool);
60    fn consume_bind_host(&mut self, value: String);
61    fn consume_cluster_agent_auth_token(&mut self, value: String);
62    fn consume_cluster_agent_enabled(&mut self, value: bool);
63    fn consume_cluster_agent_kubernetes_service_name(&mut self, value: String);
64    fn consume_cluster_agent_url(&mut self, value: String);
65    fn consume_cluster_name(&mut self, value: String);
66    fn consume_cmd_port(&mut self, value: i64);
67    fn consume_container_cgroup_root(&mut self, value: String);
68    fn consume_container_proc_root(&mut self, value: String);
69    fn consume_cri_connection_timeout(&mut self, value: i64);
70    fn consume_cri_query_timeout(&mut self, value: i64);
71    fn consume_cri_socket_path(&mut self, value: String);
72    fn consume_data_plane_api_listen_address(&mut self, value: String);
73    fn consume_data_plane_dogstatsd_aggregator_tag_filter_cache_capacity(&mut self, value: i64);
74    fn consume_data_plane_dogstatsd_enabled(&mut self, value: bool);
75    fn consume_data_plane_enabled(&mut self, value: bool);
76    fn consume_data_plane_log_file(&mut self, value: String);
77    fn consume_data_plane_otlp_enabled(&mut self, value: bool);
78    fn consume_data_plane_otlp_proxy_enabled(&mut self, value: bool);
79    fn consume_data_plane_otlp_proxy_logs_enabled(&mut self, value: bool);
80    fn consume_data_plane_otlp_proxy_metrics_enabled(&mut self, value: bool);
81    fn consume_data_plane_otlp_proxy_receiver_protocols_grpc_endpoint(&mut self, value: String);
82    fn consume_data_plane_otlp_proxy_traces_enabled(&mut self, value: bool);
83    fn consume_data_plane_remote_agent_enabled(&mut self, value: bool);
84    fn consume_data_plane_secure_api_listen_address(&mut self, value: String);
85    fn consume_data_plane_serializer_zstd_compressor_level(&mut self, value: i64);
86    fn consume_data_plane_stop_timeout(&mut self, value: i64);
87    fn consume_data_plane_use_new_config_stream_endpoint(&mut self, value: bool);
88    fn consume_dd_url(&mut self, value: String);
89    fn consume_disable_file_logging(&mut self, value: bool);
90    fn consume_dogstatsd_buffer_size(&mut self, value: i64);
91    fn consume_dogstatsd_capture_depth(&mut self, value: i64);
92    fn consume_dogstatsd_capture_path(&mut self, value: String);
93    fn consume_dogstatsd_context_expiry_seconds(&mut self, value: i64);
94    fn consume_dogstatsd_disable_verbose_logs(&mut self, value: bool);
95    fn consume_dogstatsd_entity_id_precedence(&mut self, value: bool);
96    fn consume_dogstatsd_eol_required(&mut self, value: Vec<String>);
97    fn consume_dogstatsd_expiry_seconds(&mut self, value: i64);
98    fn consume_dogstatsd_flush_incomplete_buckets(&mut self, value: bool);
99    fn consume_dogstatsd_log_file(&mut self, value: String);
100    fn consume_dogstatsd_log_file_max_rolls(&mut self, value: i64);
101    fn consume_dogstatsd_log_file_max_size(&mut self, value: String);
102    fn consume_dogstatsd_logging_enabled(&mut self, value: bool);
103    fn consume_dogstatsd_mapper_cache_size(&mut self, value: i64);
104    fn consume_dogstatsd_mapper_profiles(&mut self, value: Vec<::serde_json::Value>);
105    fn consume_dogstatsd_metrics_stats_enable(&mut self, value: bool);
106    fn consume_dogstatsd_no_aggregation_pipeline(&mut self, value: bool);
107    fn consume_dogstatsd_non_local_traffic(&mut self, value: bool);
108    fn consume_dogstatsd_origin_detection(&mut self, value: bool);
109    fn consume_dogstatsd_origin_detection_client(&mut self, value: bool);
110    fn consume_dogstatsd_origin_optout_enabled(&mut self, value: bool);
111    fn consume_dogstatsd_pipe_name(&mut self, value: String);
112    fn consume_dogstatsd_port(&mut self, value: i64);
113    fn consume_dogstatsd_so_rcvbuf(&mut self, value: i64);
114    fn consume_dogstatsd_socket(&mut self, value: Option<String>);
115    fn consume_dogstatsd_stream_log_too_big(&mut self, value: bool);
116    fn consume_dogstatsd_stream_socket(&mut self, value: String);
117    fn consume_dogstatsd_string_interner_size(&mut self, value: i64);
118    fn consume_dogstatsd_tag_cardinality(&mut self, value: String);
119    fn consume_dogstatsd_tags(&mut self, value: Vec<String>);
120    fn consume_dogstatsd_windows_pipe_security_descriptor(&mut self, value: String);
121    fn consume_dogstatsd_workers_count(&mut self, value: i64);
122    fn consume_eks_fargate(&mut self, value: bool);
123    fn consume_enable_payloads_events(&mut self, value: bool);
124    fn consume_enable_payloads_series(&mut self, value: bool);
125    fn consume_enable_payloads_service_checks(&mut self, value: bool);
126    fn consume_enable_payloads_sketches(&mut self, value: bool);
127    fn consume_env(&mut self, value: String);
128    fn consume_expected_tags_duration(&mut self, value: std::time::Duration);
129    fn consume_extra_tags(&mut self, value: Vec<String>);
130    fn consume_forwarder_apikey_validation_interval(&mut self, value: i64);
131    fn consume_forwarder_backoff_base(&mut self, value: f64);
132    fn consume_forwarder_backoff_factor(&mut self, value: f64);
133    fn consume_forwarder_backoff_max(&mut self, value: f64);
134    fn consume_forwarder_connection_reset_interval(&mut self, value: i64);
135    fn consume_forwarder_flush_to_disk_mem_ratio(&mut self, value: f64);
136    fn consume_forwarder_high_prio_buffer_size(&mut self, value: i64);
137    fn consume_forwarder_http_protocol(&mut self, value: String);
138    fn consume_forwarder_max_concurrent_requests(&mut self, value: i64);
139    fn consume_forwarder_num_workers(&mut self, value: i64);
140    fn consume_forwarder_outdated_file_in_days(&mut self, value: i64);
141    fn consume_forwarder_recovery_interval(&mut self, value: i64);
142    fn consume_forwarder_recovery_reset(&mut self, value: bool);
143    fn consume_forwarder_retry_queue_capacity_time_interval_sec(&mut self, value: i64);
144    fn consume_forwarder_retry_queue_max_size(&mut self, value: i64);
145    fn consume_forwarder_retry_queue_payloads_max_size(&mut self, value: i64);
146    fn consume_forwarder_stop_timeout(&mut self, value: i64);
147    fn consume_forwarder_storage_max_disk_ratio(&mut self, value: f64);
148    fn consume_forwarder_storage_max_size_in_bytes(&mut self, value: i64);
149    fn consume_forwarder_storage_path(&mut self, value: String);
150    fn consume_forwarder_timeout(&mut self, value: i64);
151    fn consume_histogram_aggregates(&mut self, value: Vec<String>);
152    fn consume_histogram_copy_to_distribution(&mut self, value: bool);
153    fn consume_histogram_copy_to_distribution_prefix(&mut self, value: String);
154    fn consume_histogram_percentiles(&mut self, value: Vec<String>);
155    fn consume_hostname(&mut self, value: String);
156    fn consume_ipc_cert_file_path(&mut self, value: String);
157    fn consume_kubernetes_kubelet_nodename(&mut self, value: String);
158    fn consume_log_file_max_rolls(&mut self, value: i64);
159    fn consume_log_file_max_size(&mut self, value: String);
160    fn consume_log_format_json(&mut self, value: bool);
161    fn consume_log_format_rfc3339(&mut self, value: bool);
162    fn consume_log_level(&mut self, value: String);
163    fn consume_log_payloads(&mut self, value: bool);
164    fn consume_log_to_console(&mut self, value: bool);
165    fn consume_log_to_syslog(&mut self, value: bool);
166    fn consume_metric_filterlist(&mut self, value: Vec<String>);
167    fn consume_metric_filterlist_match_prefix(&mut self, value: bool);
168    fn consume_metric_tag_filterlist(&mut self, value: Vec<::serde_json::Value>);
169    fn consume_min_tls_version(&mut self, value: String);
170    fn consume_multi_region_failover_api_key(&mut self, value: String);
171    fn consume_multi_region_failover_dd_url(&mut self, value: String);
172    fn consume_multi_region_failover_enabled(&mut self, value: bool);
173    fn consume_multi_region_failover_failover_metrics(&mut self, value: bool);
174    fn consume_multi_region_failover_metric_allowlist(&mut self, value: Vec<String>);
175    fn consume_multi_region_failover_site(&mut self, value: String);
176    fn consume_no_proxy_nonexact_match(&mut self, value: bool);
177    fn consume_observability_pipelines_worker_metrics_enabled(&mut self, value: bool);
178    fn consume_observability_pipelines_worker_metrics_url(&mut self, value: String);
179    fn consume_observability_pipelines_worker_metrics_use_v3_api_series(&mut self, value: bool);
180    fn consume_origin_detection_unified(&mut self, value: bool);
181    fn consume_otlp_config_logs_enabled(&mut self, value: bool);
182    fn consume_otlp_config_metrics_delta_ttl(&mut self, value: i64);
183    fn consume_otlp_config_metrics_enabled(&mut self, value: bool);
184    fn consume_otlp_config_metrics_histograms_mode(&mut self, value: String);
185    fn consume_otlp_config_metrics_histograms_send_aggregation_metrics(&mut self, value: bool);
186    fn consume_otlp_config_metrics_instrumentation_scope_metadata_as_tags(&mut self, value: bool);
187    fn consume_otlp_config_metrics_resource_attributes_as_tags(&mut self, value: bool);
188    fn consume_otlp_config_metrics_summaries_mode(&mut self, value: String);
189    fn consume_otlp_config_metrics_sums_cumulative_monotonic_mode(&mut self, value: String);
190    fn consume_otlp_config_metrics_sums_initial_cumulative_monotonic_value(&mut self, value: String);
191    fn consume_otlp_config_metrics_tag_cardinality(&mut self, value: String);
192    fn consume_otlp_config_metrics_tags(&mut self, value: String);
193    fn consume_otlp_config_receiver_protocols_grpc_endpoint(&mut self, value: String);
194    fn consume_otlp_config_receiver_protocols_grpc_keepalive_server_parameters_max_connection_age(
195        &mut self, value: std::time::Duration,
196    );
197    fn consume_otlp_config_receiver_protocols_grpc_keepalive_server_parameters_max_connection_age_grace(
198        &mut self, value: std::time::Duration,
199    );
200    fn consume_otlp_config_receiver_protocols_grpc_keepalive_server_parameters_time(
201        &mut self, value: std::time::Duration,
202    );
203    fn consume_otlp_config_receiver_protocols_grpc_keepalive_server_parameters_timeout(
204        &mut self, value: std::time::Duration,
205    );
206    fn consume_otlp_config_receiver_protocols_grpc_max_concurrent_streams(&mut self, value: i64);
207    fn consume_otlp_config_receiver_protocols_grpc_max_recv_msg_size_mib(&mut self, value: i64);
208    fn consume_otlp_config_receiver_protocols_grpc_tls_ca_file(&mut self, value: Option<String>);
209    fn consume_otlp_config_receiver_protocols_grpc_tls_cert_file(&mut self, value: Option<String>);
210    fn consume_otlp_config_receiver_protocols_grpc_tls_key_file(&mut self, value: Option<String>);
211    fn consume_otlp_config_receiver_protocols_grpc_transport(&mut self, value: String);
212    fn consume_otlp_config_receiver_protocols_http_cors_allowed_headers(&mut self, value: Vec<String>);
213    fn consume_otlp_config_receiver_protocols_http_cors_allowed_origins(&mut self, value: Vec<String>);
214    fn consume_otlp_config_receiver_protocols_http_cors_exposed_headers(&mut self, value: Vec<String>);
215    fn consume_otlp_config_receiver_protocols_http_cors_max_age(&mut self, value: Option<i64>);
216    fn consume_otlp_config_receiver_protocols_http_endpoint(&mut self, value: String);
217    fn consume_otlp_config_receiver_protocols_http_max_request_body_size(&mut self, value: i64);
218    fn consume_otlp_config_receiver_protocols_http_tls_ca_file(&mut self, value: Option<String>);
219    fn consume_otlp_config_receiver_protocols_http_tls_cert_file(&mut self, value: Option<String>);
220    fn consume_otlp_config_receiver_protocols_http_tls_key_file(&mut self, value: Option<String>);
221    fn consume_otlp_config_traces_enabled(&mut self, value: bool);
222    fn consume_otlp_config_traces_internal_port(&mut self, value: i64);
223    fn consume_otlp_config_traces_probabilistic_sampler_sampling_percentage(&mut self, value: f64);
224    fn consume_provider_kind(&mut self, value: String);
225    fn consume_proxy_http(&mut self, value: String);
226    fn consume_proxy_https(&mut self, value: String);
227    fn consume_proxy_no_proxy(&mut self, value: Vec<String>);
228    fn consume_run_path(&mut self, value: String);
229    fn consume_secret_backend_command(&mut self, value: String);
230    fn consume_secret_refresh_on_api_key_failure_interval(&mut self, value: i64);
231    fn consume_serializer_compressor_kind(&mut self, value: String);
232    fn consume_serializer_experimental_use_v3_api_compression_level(&mut self, value: i64);
233    fn consume_serializer_experimental_use_v3_api_sketches_endpoints(&mut self, value: Vec<String>);
234    fn consume_serializer_max_payload_size(&mut self, value: i64);
235    fn consume_serializer_max_series_payload_size(&mut self, value: i64);
236    fn consume_serializer_max_series_points_per_payload(&mut self, value: i64);
237    fn consume_serializer_max_series_uncompressed_payload_size(&mut self, value: i64);
238    fn consume_serializer_max_uncompressed_payload_size(&mut self, value: i64);
239    fn consume_serializer_zstd_compressor_level(&mut self, value: i64);
240    fn consume_site(&mut self, value: String);
241    fn consume_skip_ssl_validation(&mut self, value: bool);
242    fn consume_sslkeylogfile(&mut self, value: String);
243    fn consume_statsd_forward_host(&mut self, value: String);
244    fn consume_statsd_forward_port(&mut self, value: i64);
245    fn consume_statsd_metric_blocklist(&mut self, value: Vec<String>);
246    fn consume_statsd_metric_blocklist_match_prefix(&mut self, value: bool);
247    fn consume_statsd_metric_namespace(&mut self, value: String);
248    fn consume_statsd_metric_namespace_blacklist(&mut self, value: Vec<String>);
249    fn consume_syslog_rfc(&mut self, value: bool);
250    fn consume_syslog_uri(&mut self, value: String);
251    fn consume_tags(&mut self, value: Vec<String>);
252    fn consume_telemetry_dogstatsd_origin(&mut self, value: bool);
253    fn consume_tls_handshake_timeout(&mut self, value: std::time::Duration);
254    fn consume_use_proxy_for_cloud_metadata(&mut self, value: bool);
255    fn consume_use_v2_api_series(&mut self, value: bool);
256    fn consume_use_v3_api_series_enabled(&mut self, value: String);
257    fn consume_use_v3_api_series_endpoints(&mut self, value: HashMap<String, String>);
258    fn consume_vector_metrics_enabled(&mut self, value: bool);
259    fn consume_vector_metrics_url(&mut self, value: String);
260    fn consume_vector_metrics_use_v3_api_series(&mut self, value: bool);
261    fn consume_vsock_addr(&mut self, value: String);
262
263    /// Drains every translation error recorded while consuming.
264    fn translate_errors(&mut self) -> Vec<TranslateError> {
265        Vec::new()
266    }
267}
268
269/// Drives a consumer over every supported key in `config`, calling each `consume_<key>` exactly
270/// once with the value navigated from `config`.
271///
272/// # Errors
273///
274/// Returns every [`TranslateError`] the consumer recorded, once all keys are consumed.
275pub fn drive(config: &DatadogConfiguration, consumer: &mut impl DatadogConfigWitness) -> Result<(), TranslateErrors> {
276    consumer.consume_additional_endpoints(config.additional_endpoints.clone());
277    consumer.consume_agent_ipc_grpc_max_message_size(config.agent_ipc.grpc_max_message_size.clone());
278    consumer.consume_aggregator_stop_timeout(config.aggregator_stop_timeout.clone());
279    consumer.consume_allow_arbitrary_tags(config.allow_arbitrary_tags.clone());
280    consumer.consume_api_key(config.api_key.clone());
281    consumer.consume_apm_config_compute_stats_by_span_kind(config.apm_config.compute_stats_by_span_kind.clone());
282    consumer.consume_apm_config_enable_rare_sampler(config.apm_config.enable_rare_sampler.clone());
283    consumer.consume_apm_config_error_tracking_standalone_enabled(
284        config.apm_config.error_tracking_standalone.enabled.clone(),
285    );
286    consumer.consume_apm_config_errors_per_second(config.apm_config.errors_per_second.clone());
287    consumer.consume_apm_config_extra_sample_rate(config.apm_config.extra_sample_rate.clone());
288    consumer.consume_apm_config_features(config.apm_config.features.clone());
289    consumer.consume_apm_config_max_catalog_entries(config.apm_config.max_catalog_entries.clone());
290    consumer.consume_apm_config_max_traces_per_second(config.apm_config.max_traces_per_second.clone());
291    consumer.consume_apm_config_obfuscation_credit_cards_enabled(
292        config.apm_config.obfuscation.credit_cards.enabled.clone(),
293    );
294    consumer.consume_apm_config_obfuscation_credit_cards_keep_values(
295        config.apm_config.obfuscation.credit_cards.keep_values.clone(),
296    );
297    consumer.consume_apm_config_obfuscation_credit_cards_luhn(config.apm_config.obfuscation.credit_cards.luhn.clone());
298    consumer.consume_apm_config_obfuscation_elasticsearch_enabled(
299        config.apm_config.obfuscation.elasticsearch.enabled.clone(),
300    );
301    consumer.consume_apm_config_obfuscation_elasticsearch_keep_values(
302        config.apm_config.obfuscation.elasticsearch.keep_values.clone(),
303    );
304    consumer.consume_apm_config_obfuscation_elasticsearch_obfuscate_sql_values(
305        config.apm_config.obfuscation.elasticsearch.obfuscate_sql_values.clone(),
306    );
307    consumer.consume_apm_config_obfuscation_http_remove_paths_with_digits(
308        config.apm_config.obfuscation.http.remove_paths_with_digits.clone(),
309    );
310    consumer.consume_apm_config_obfuscation_http_remove_query_string(
311        config.apm_config.obfuscation.http.remove_query_string.clone(),
312    );
313    consumer.consume_apm_config_obfuscation_memcached_enabled(config.apm_config.obfuscation.memcached.enabled.clone());
314    consumer.consume_apm_config_obfuscation_memcached_keep_command(
315        config.apm_config.obfuscation.memcached.keep_command.clone(),
316    );
317    consumer.consume_apm_config_obfuscation_mongodb_enabled(config.apm_config.obfuscation.mongodb.enabled.clone());
318    consumer
319        .consume_apm_config_obfuscation_mongodb_keep_values(config.apm_config.obfuscation.mongodb.keep_values.clone());
320    consumer.consume_apm_config_obfuscation_mongodb_obfuscate_sql_values(
321        config.apm_config.obfuscation.mongodb.obfuscate_sql_values.clone(),
322    );
323    consumer
324        .consume_apm_config_obfuscation_opensearch_enabled(config.apm_config.obfuscation.opensearch.enabled.clone());
325    consumer.consume_apm_config_obfuscation_opensearch_keep_values(
326        config.apm_config.obfuscation.opensearch.keep_values.clone(),
327    );
328    consumer.consume_apm_config_obfuscation_opensearch_obfuscate_sql_values(
329        config.apm_config.obfuscation.opensearch.obfuscate_sql_values.clone(),
330    );
331    consumer.consume_apm_config_obfuscation_redis_enabled(config.apm_config.obfuscation.redis.enabled.clone());
332    consumer.consume_apm_config_obfuscation_redis_remove_all_args(
333        config.apm_config.obfuscation.redis.remove_all_args.clone(),
334    );
335    consumer.consume_apm_config_obfuscation_valkey_enabled(config.apm_config.obfuscation.valkey.enabled.clone());
336    consumer.consume_apm_config_obfuscation_valkey_remove_all_args(
337        config.apm_config.obfuscation.valkey.remove_all_args.clone(),
338    );
339    consumer.consume_apm_config_peer_tags(config.apm_config.peer_tags.clone());
340    consumer.consume_apm_config_peer_tags_aggregation(config.apm_config.peer_tags_aggregation.clone());
341    consumer.consume_apm_config_probabilistic_sampler_enabled(config.apm_config.probabilistic_sampler.enabled.clone());
342    consumer
343        .consume_apm_config_probabilistic_sampler_hash_seed(config.apm_config.probabilistic_sampler.hash_seed.clone());
344    consumer.consume_apm_config_probabilistic_sampler_sampling_percentage(
345        config.apm_config.probabilistic_sampler.sampling_percentage.clone(),
346    );
347    consumer.consume_apm_config_replace_tags(config.apm_config.replace_tags.clone());
348    consumer.consume_apm_config_target_traces_per_second(config.apm_config.target_traces_per_second.clone());
349    consumer.consume_auth_token_file_path(config.auth_token_file_path.clone());
350    consumer.consume_autoscaling_failover_enabled(config.autoscaling.failover.enabled.clone());
351    consumer.consume_autoscaling_failover_metrics(config.autoscaling.failover.metrics.clone());
352    consumer.consume_basic_telemetry_add_container_tags(config.basic_telemetry_add_container_tags.clone());
353    consumer.consume_bind_host(config.bind_host.clone());
354    consumer.consume_cluster_agent_auth_token(config.cluster_agent.auth_token.clone());
355    consumer.consume_cluster_agent_enabled(config.cluster_agent.enabled.clone());
356    consumer.consume_cluster_agent_kubernetes_service_name(config.cluster_agent.kubernetes_service_name.clone());
357    consumer.consume_cluster_agent_url(config.cluster_agent.url.clone());
358    consumer.consume_cluster_name(config.cluster_name.clone());
359    consumer.consume_cmd_port(config.cmd_port.clone());
360    consumer.consume_container_cgroup_root(config.container_cgroup_root.clone());
361    consumer.consume_container_proc_root(config.container_proc_root.clone());
362    consumer.consume_cri_connection_timeout(config.cri_connection_timeout.clone());
363    consumer.consume_cri_query_timeout(config.cri_query_timeout.clone());
364    consumer.consume_cri_socket_path(config.cri_socket_path.clone());
365    consumer.consume_data_plane_api_listen_address(config.data_plane.api_listen_address.clone());
366    consumer.consume_data_plane_dogstatsd_aggregator_tag_filter_cache_capacity(
367        config.data_plane.dogstatsd.aggregator_tag_filter_cache_capacity.clone(),
368    );
369    consumer.consume_data_plane_dogstatsd_enabled(config.data_plane.dogstatsd.enabled.clone());
370    consumer.consume_data_plane_enabled(config.data_plane.enabled.clone());
371    consumer.consume_data_plane_log_file(config.data_plane.log_file.clone());
372    consumer.consume_data_plane_otlp_enabled(config.data_plane.otlp.enabled.clone());
373    consumer.consume_data_plane_otlp_proxy_enabled(config.data_plane.otlp.proxy.enabled.clone());
374    consumer.consume_data_plane_otlp_proxy_logs_enabled(config.data_plane.otlp.proxy.logs.enabled.clone());
375    consumer.consume_data_plane_otlp_proxy_metrics_enabled(config.data_plane.otlp.proxy.metrics.enabled.clone());
376    consumer.consume_data_plane_otlp_proxy_receiver_protocols_grpc_endpoint(
377        config.data_plane.otlp.proxy.receiver.protocols.grpc.endpoint.clone(),
378    );
379    consumer.consume_data_plane_otlp_proxy_traces_enabled(config.data_plane.otlp.proxy.traces.enabled.clone());
380    consumer.consume_data_plane_remote_agent_enabled(config.data_plane.remote_agent_enabled.clone());
381    consumer.consume_data_plane_secure_api_listen_address(config.data_plane.secure_api_listen_address.clone());
382    consumer.consume_data_plane_serializer_zstd_compressor_level(
383        config.data_plane.serializer_zstd_compressor_level.clone(),
384    );
385    consumer.consume_data_plane_stop_timeout(config.data_plane.stop_timeout.clone());
386    consumer
387        .consume_data_plane_use_new_config_stream_endpoint(config.data_plane.use_new_config_stream_endpoint.clone());
388    consumer.consume_dd_url(config.dd_url.clone());
389    consumer.consume_disable_file_logging(config.disable_file_logging.clone());
390    consumer.consume_dogstatsd_buffer_size(config.dogstatsd_buffer_size.clone());
391    consumer.consume_dogstatsd_capture_depth(config.dogstatsd_capture_depth.clone());
392    consumer.consume_dogstatsd_capture_path(config.dogstatsd_capture_path.clone());
393    consumer.consume_dogstatsd_context_expiry_seconds(config.dogstatsd_context_expiry_seconds.clone());
394    consumer.consume_dogstatsd_disable_verbose_logs(config.dogstatsd_disable_verbose_logs.clone());
395    consumer.consume_dogstatsd_entity_id_precedence(config.dogstatsd_entity_id_precedence.clone());
396    consumer.consume_dogstatsd_eol_required(config.dogstatsd_eol_required.clone());
397    consumer.consume_dogstatsd_expiry_seconds(config.dogstatsd_expiry_seconds.clone());
398    consumer.consume_dogstatsd_flush_incomplete_buckets(config.dogstatsd_flush_incomplete_buckets.clone());
399    consumer.consume_dogstatsd_log_file(config.dogstatsd_log_file.clone());
400    consumer.consume_dogstatsd_log_file_max_rolls(config.dogstatsd_log_file_max_rolls.clone());
401    consumer.consume_dogstatsd_log_file_max_size(config.dogstatsd_log_file_max_size.clone());
402    consumer.consume_dogstatsd_logging_enabled(config.dogstatsd_logging_enabled.clone());
403    consumer.consume_dogstatsd_mapper_cache_size(config.dogstatsd_mapper_cache_size.clone());
404    consumer.consume_dogstatsd_mapper_profiles(config.dogstatsd_mapper_profiles.clone());
405    consumer.consume_dogstatsd_metrics_stats_enable(config.dogstatsd_metrics_stats_enable.clone());
406    consumer.consume_dogstatsd_no_aggregation_pipeline(config.dogstatsd_no_aggregation_pipeline.clone());
407    consumer.consume_dogstatsd_non_local_traffic(config.dogstatsd_non_local_traffic.clone());
408    consumer.consume_dogstatsd_origin_detection(config.dogstatsd_origin_detection.clone());
409    consumer.consume_dogstatsd_origin_detection_client(config.dogstatsd_origin_detection_client.clone());
410    consumer.consume_dogstatsd_origin_optout_enabled(config.dogstatsd_origin_optout_enabled.clone());
411    consumer.consume_dogstatsd_pipe_name(config.dogstatsd_pipe_name.clone());
412    consumer.consume_dogstatsd_port(config.dogstatsd_port.clone());
413    consumer.consume_dogstatsd_so_rcvbuf(config.dogstatsd_so_rcvbuf.clone());
414    consumer.consume_dogstatsd_socket(config.dogstatsd_socket.clone());
415    consumer.consume_dogstatsd_stream_log_too_big(config.dogstatsd_stream_log_too_big.clone());
416    consumer.consume_dogstatsd_stream_socket(config.dogstatsd_stream_socket.clone());
417    consumer.consume_dogstatsd_string_interner_size(config.dogstatsd_string_interner_size.clone());
418    consumer.consume_dogstatsd_tag_cardinality(config.dogstatsd_tag_cardinality.clone());
419    consumer.consume_dogstatsd_tags(config.dogstatsd_tags.clone());
420    consumer
421        .consume_dogstatsd_windows_pipe_security_descriptor(config.dogstatsd_windows_pipe_security_descriptor.clone());
422    consumer.consume_dogstatsd_workers_count(config.dogstatsd_workers_count.clone());
423    consumer.consume_eks_fargate(config.eks_fargate.clone());
424    consumer.consume_enable_payloads_events(config.enable_payloads.events.clone());
425    consumer.consume_enable_payloads_series(config.enable_payloads.series.clone());
426    consumer.consume_enable_payloads_service_checks(config.enable_payloads.service_checks.clone());
427    consumer.consume_enable_payloads_sketches(config.enable_payloads.sketches.clone());
428    consumer.consume_env(config.env.clone());
429    consumer.consume_expected_tags_duration(config.expected_tags_duration.clone());
430    consumer.consume_extra_tags(config.extra_tags.clone());
431    consumer.consume_forwarder_apikey_validation_interval(config.forwarder_apikey_validation_interval.clone());
432    consumer.consume_forwarder_backoff_base(config.forwarder_backoff_base.clone());
433    consumer.consume_forwarder_backoff_factor(config.forwarder_backoff_factor.clone());
434    consumer.consume_forwarder_backoff_max(config.forwarder_backoff_max.clone());
435    consumer.consume_forwarder_connection_reset_interval(config.forwarder_connection_reset_interval.clone());
436    consumer.consume_forwarder_flush_to_disk_mem_ratio(config.forwarder_flush_to_disk_mem_ratio.clone());
437    consumer.consume_forwarder_high_prio_buffer_size(config.forwarder_high_prio_buffer_size.clone());
438    consumer.consume_forwarder_http_protocol(config.forwarder_http_protocol.clone());
439    consumer.consume_forwarder_max_concurrent_requests(config.forwarder_max_concurrent_requests.clone());
440    consumer.consume_forwarder_num_workers(config.forwarder_num_workers.clone());
441    consumer.consume_forwarder_outdated_file_in_days(config.forwarder_outdated_file_in_days.clone());
442    consumer.consume_forwarder_recovery_interval(config.forwarder_recovery_interval.clone());
443    consumer.consume_forwarder_recovery_reset(config.forwarder_recovery_reset.clone());
444    consumer.consume_forwarder_retry_queue_capacity_time_interval_sec(
445        config.forwarder_retry_queue_capacity_time_interval_sec.clone(),
446    );
447    consumer.consume_forwarder_retry_queue_max_size(config.forwarder_retry_queue_max_size.clone());
448    consumer.consume_forwarder_retry_queue_payloads_max_size(config.forwarder_retry_queue_payloads_max_size.clone());
449    consumer.consume_forwarder_stop_timeout(config.forwarder_stop_timeout.clone());
450    consumer.consume_forwarder_storage_max_disk_ratio(config.forwarder_storage_max_disk_ratio.clone());
451    consumer.consume_forwarder_storage_max_size_in_bytes(config.forwarder_storage_max_size_in_bytes.clone());
452    consumer.consume_forwarder_storage_path(config.forwarder_storage_path.clone());
453    consumer.consume_forwarder_timeout(config.forwarder_timeout.clone());
454    consumer.consume_histogram_aggregates(config.histogram_aggregates.clone());
455    consumer.consume_histogram_copy_to_distribution(config.histogram_copy_to_distribution.clone());
456    consumer.consume_histogram_copy_to_distribution_prefix(config.histogram_copy_to_distribution_prefix.clone());
457    consumer.consume_histogram_percentiles(config.histogram_percentiles.clone());
458    consumer.consume_hostname(config.hostname.clone());
459    consumer.consume_ipc_cert_file_path(config.ipc_cert_file_path.clone());
460    consumer.consume_kubernetes_kubelet_nodename(config.kubernetes_kubelet_nodename.clone());
461    consumer.consume_log_file_max_rolls(config.log_file_max_rolls.clone());
462    consumer.consume_log_file_max_size(config.log_file_max_size.clone());
463    consumer.consume_log_format_json(config.log_format_json.clone());
464    consumer.consume_log_format_rfc3339(config.log_format_rfc3339.clone());
465    consumer.consume_log_level(config.log_level.clone());
466    consumer.consume_log_payloads(config.log_payloads.clone());
467    consumer.consume_log_to_console(config.log_to_console.clone());
468    consumer.consume_log_to_syslog(config.log_to_syslog.clone());
469    consumer.consume_metric_filterlist(config.metric_filterlist.clone());
470    consumer.consume_metric_filterlist_match_prefix(config.metric_filterlist_match_prefix.clone());
471    consumer.consume_metric_tag_filterlist(config.metric_tag_filterlist.clone());
472    consumer.consume_min_tls_version(config.min_tls_version.clone());
473    consumer.consume_multi_region_failover_api_key(config.multi_region_failover.api_key.clone());
474    consumer.consume_multi_region_failover_dd_url(config.multi_region_failover.dd_url.clone());
475    consumer.consume_multi_region_failover_enabled(config.multi_region_failover.enabled.clone());
476    consumer.consume_multi_region_failover_failover_metrics(config.multi_region_failover.failover_metrics.clone());
477    consumer.consume_multi_region_failover_metric_allowlist(config.multi_region_failover.metric_allowlist.clone());
478    consumer.consume_multi_region_failover_site(config.multi_region_failover.site.clone());
479    consumer.consume_no_proxy_nonexact_match(config.no_proxy_nonexact_match.clone());
480    consumer.consume_observability_pipelines_worker_metrics_enabled(
481        config.observability_pipelines_worker.metrics.enabled.clone(),
482    );
483    consumer
484        .consume_observability_pipelines_worker_metrics_url(config.observability_pipelines_worker.metrics.url.clone());
485    consumer.consume_observability_pipelines_worker_metrics_use_v3_api_series(
486        config.observability_pipelines_worker.metrics.use_v3_api.series.clone(),
487    );
488    consumer.consume_origin_detection_unified(config.origin_detection_unified.clone());
489    consumer.consume_otlp_config_logs_enabled(config.otlp_config.logs.enabled.clone());
490    consumer.consume_otlp_config_metrics_delta_ttl(config.otlp_config.metrics.delta_ttl.clone());
491    consumer.consume_otlp_config_metrics_enabled(config.otlp_config.metrics.enabled.clone());
492    consumer.consume_otlp_config_metrics_histograms_mode(config.otlp_config.metrics.histograms.mode.clone());
493    consumer.consume_otlp_config_metrics_histograms_send_aggregation_metrics(
494        config.otlp_config.metrics.histograms.send_aggregation_metrics.clone(),
495    );
496    consumer.consume_otlp_config_metrics_instrumentation_scope_metadata_as_tags(
497        config
498            .otlp_config
499            .metrics
500            .instrumentation_scope_metadata_as_tags
501            .clone(),
502    );
503    consumer.consume_otlp_config_metrics_resource_attributes_as_tags(
504        config.otlp_config.metrics.resource_attributes_as_tags.clone(),
505    );
506    consumer.consume_otlp_config_metrics_summaries_mode(config.otlp_config.metrics.summaries.mode.clone());
507    consumer.consume_otlp_config_metrics_sums_cumulative_monotonic_mode(
508        config.otlp_config.metrics.sums.cumulative_monotonic_mode.clone(),
509    );
510    consumer.consume_otlp_config_metrics_sums_initial_cumulative_monotonic_value(
511        config
512            .otlp_config
513            .metrics
514            .sums
515            .initial_cumulative_monotonic_value
516            .clone(),
517    );
518    consumer.consume_otlp_config_metrics_tag_cardinality(config.otlp_config.metrics.tag_cardinality.clone());
519    consumer.consume_otlp_config_metrics_tags(config.otlp_config.metrics.tags.clone());
520    consumer.consume_otlp_config_receiver_protocols_grpc_endpoint(
521        config.otlp_config.receiver.protocols.grpc.endpoint.clone(),
522    );
523    consumer.consume_otlp_config_receiver_protocols_grpc_keepalive_server_parameters_max_connection_age(
524        config
525            .otlp_config
526            .receiver
527            .protocols
528            .grpc
529            .keepalive
530            .server_parameters
531            .max_connection_age
532            .clone(),
533    );
534    consumer.consume_otlp_config_receiver_protocols_grpc_keepalive_server_parameters_max_connection_age_grace(
535        config
536            .otlp_config
537            .receiver
538            .protocols
539            .grpc
540            .keepalive
541            .server_parameters
542            .max_connection_age_grace
543            .clone(),
544    );
545    consumer.consume_otlp_config_receiver_protocols_grpc_keepalive_server_parameters_time(
546        config
547            .otlp_config
548            .receiver
549            .protocols
550            .grpc
551            .keepalive
552            .server_parameters
553            .time
554            .clone(),
555    );
556    consumer.consume_otlp_config_receiver_protocols_grpc_keepalive_server_parameters_timeout(
557        config
558            .otlp_config
559            .receiver
560            .protocols
561            .grpc
562            .keepalive
563            .server_parameters
564            .timeout
565            .clone(),
566    );
567    consumer.consume_otlp_config_receiver_protocols_grpc_max_concurrent_streams(
568        config
569            .otlp_config
570            .receiver
571            .protocols
572            .grpc
573            .max_concurrent_streams
574            .clone(),
575    );
576    consumer.consume_otlp_config_receiver_protocols_grpc_max_recv_msg_size_mib(
577        config.otlp_config.receiver.protocols.grpc.max_recv_msg_size_mib.clone(),
578    );
579    consumer.consume_otlp_config_receiver_protocols_grpc_tls_ca_file(
580        config.otlp_config.receiver.protocols.grpc.tls.ca_file.clone(),
581    );
582    consumer.consume_otlp_config_receiver_protocols_grpc_tls_cert_file(
583        config.otlp_config.receiver.protocols.grpc.tls.cert_file.clone(),
584    );
585    consumer.consume_otlp_config_receiver_protocols_grpc_tls_key_file(
586        config.otlp_config.receiver.protocols.grpc.tls.key_file.clone(),
587    );
588    consumer.consume_otlp_config_receiver_protocols_grpc_transport(
589        config.otlp_config.receiver.protocols.grpc.transport.clone(),
590    );
591    consumer.consume_otlp_config_receiver_protocols_http_cors_allowed_headers(
592        config.otlp_config.receiver.protocols.http.cors.allowed_headers.clone(),
593    );
594    consumer.consume_otlp_config_receiver_protocols_http_cors_allowed_origins(
595        config.otlp_config.receiver.protocols.http.cors.allowed_origins.clone(),
596    );
597    consumer.consume_otlp_config_receiver_protocols_http_cors_exposed_headers(
598        config.otlp_config.receiver.protocols.http.cors.exposed_headers.clone(),
599    );
600    consumer.consume_otlp_config_receiver_protocols_http_cors_max_age(
601        config.otlp_config.receiver.protocols.http.cors.max_age.clone(),
602    );
603    consumer.consume_otlp_config_receiver_protocols_http_endpoint(
604        config.otlp_config.receiver.protocols.http.endpoint.clone(),
605    );
606    consumer.consume_otlp_config_receiver_protocols_http_max_request_body_size(
607        config.otlp_config.receiver.protocols.http.max_request_body_size.clone(),
608    );
609    consumer.consume_otlp_config_receiver_protocols_http_tls_ca_file(
610        config.otlp_config.receiver.protocols.http.tls.ca_file.clone(),
611    );
612    consumer.consume_otlp_config_receiver_protocols_http_tls_cert_file(
613        config.otlp_config.receiver.protocols.http.tls.cert_file.clone(),
614    );
615    consumer.consume_otlp_config_receiver_protocols_http_tls_key_file(
616        config.otlp_config.receiver.protocols.http.tls.key_file.clone(),
617    );
618    consumer.consume_otlp_config_traces_enabled(config.otlp_config.traces.enabled.clone());
619    consumer.consume_otlp_config_traces_internal_port(config.otlp_config.traces.internal_port.clone());
620    consumer.consume_otlp_config_traces_probabilistic_sampler_sampling_percentage(
621        config
622            .otlp_config
623            .traces
624            .probabilistic_sampler
625            .sampling_percentage
626            .clone(),
627    );
628    consumer.consume_provider_kind(config.provider_kind.clone());
629    consumer.consume_proxy_http(config.proxy.http.clone());
630    consumer.consume_proxy_https(config.proxy.https.clone());
631    consumer.consume_proxy_no_proxy(config.proxy.no_proxy.clone());
632    consumer.consume_run_path(config.run_path.clone());
633    consumer.consume_secret_backend_command(config.secret_backend_command.clone());
634    consumer
635        .consume_secret_refresh_on_api_key_failure_interval(config.secret_refresh_on_api_key_failure_interval.clone());
636    consumer.consume_serializer_compressor_kind(config.serializer_compressor_kind.clone());
637    consumer.consume_serializer_experimental_use_v3_api_compression_level(
638        config.serializer_experimental_use_v3_api.compression_level.clone(),
639    );
640    consumer.consume_serializer_experimental_use_v3_api_sketches_endpoints(
641        config.serializer_experimental_use_v3_api.sketches.endpoints.clone(),
642    );
643    consumer.consume_serializer_max_payload_size(config.serializer_max_payload_size.clone());
644    consumer.consume_serializer_max_series_payload_size(config.serializer_max_series_payload_size.clone());
645    consumer.consume_serializer_max_series_points_per_payload(config.serializer_max_series_points_per_payload.clone());
646    consumer.consume_serializer_max_series_uncompressed_payload_size(
647        config.serializer_max_series_uncompressed_payload_size.clone(),
648    );
649    consumer.consume_serializer_max_uncompressed_payload_size(config.serializer_max_uncompressed_payload_size.clone());
650    consumer.consume_serializer_zstd_compressor_level(config.serializer_zstd_compressor_level.clone());
651    consumer.consume_site(config.site.clone());
652    consumer.consume_skip_ssl_validation(config.skip_ssl_validation.clone());
653    consumer.consume_sslkeylogfile(config.sslkeylogfile.clone());
654    consumer.consume_statsd_forward_host(config.statsd_forward_host.clone());
655    consumer.consume_statsd_forward_port(config.statsd_forward_port.clone());
656    consumer.consume_statsd_metric_blocklist(config.statsd_metric_blocklist.clone());
657    consumer.consume_statsd_metric_blocklist_match_prefix(config.statsd_metric_blocklist_match_prefix.clone());
658    consumer.consume_statsd_metric_namespace(config.statsd_metric_namespace.clone());
659    consumer.consume_statsd_metric_namespace_blacklist(config.statsd_metric_namespace_blacklist.clone());
660    consumer.consume_syslog_rfc(config.syslog_rfc.clone());
661    consumer.consume_syslog_uri(config.syslog_uri.clone());
662    consumer.consume_tags(config.tags.clone());
663    consumer.consume_telemetry_dogstatsd_origin(config.telemetry.dogstatsd_origin.clone());
664    consumer.consume_tls_handshake_timeout(config.tls_handshake_timeout.clone());
665    consumer.consume_use_proxy_for_cloud_metadata(config.use_proxy_for_cloud_metadata.clone());
666    consumer.consume_use_v2_api_series(config.use_v2_api.series.clone());
667    consumer.consume_use_v3_api_series_enabled(config.use_v3_api.series.enabled.clone());
668    consumer.consume_use_v3_api_series_endpoints(config.use_v3_api.series.endpoints.clone());
669    consumer.consume_vector_metrics_enabled(config.vector.metrics.enabled.clone());
670    consumer.consume_vector_metrics_url(config.vector.metrics.url.clone());
671    consumer.consume_vector_metrics_use_v3_api_series(config.vector.metrics.use_v3_api.series.clone());
672    consumer.consume_vsock_addr(config.vsock_addr.clone());
673
674    let errors = consumer.translate_errors();
675    if errors.is_empty() {
676        Ok(())
677    } else {
678        Err(TranslateErrors::new(errors))
679    }
680}