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_obfuscation_credit_cards_enabled(&mut self, value: bool);
26    fn consume_apm_config_obfuscation_credit_cards_keep_values(&mut self, value: Vec<String>);
27    fn consume_apm_config_obfuscation_credit_cards_luhn(&mut self, value: bool);
28    fn consume_apm_config_obfuscation_elasticsearch_enabled(&mut self, value: bool);
29    fn consume_apm_config_obfuscation_elasticsearch_keep_values(&mut self, value: Vec<String>);
30    fn consume_apm_config_obfuscation_elasticsearch_obfuscate_sql_values(&mut self, value: Vec<String>);
31    fn consume_apm_config_obfuscation_http_remove_paths_with_digits(&mut self, value: bool);
32    fn consume_apm_config_obfuscation_http_remove_query_string(&mut self, value: bool);
33    fn consume_apm_config_obfuscation_memcached_enabled(&mut self, value: bool);
34    fn consume_apm_config_obfuscation_memcached_keep_command(&mut self, value: bool);
35    fn consume_apm_config_obfuscation_mongodb_enabled(&mut self, value: bool);
36    fn consume_apm_config_obfuscation_mongodb_keep_values(&mut self, value: Vec<String>);
37    fn consume_apm_config_obfuscation_mongodb_obfuscate_sql_values(&mut self, value: Vec<String>);
38    fn consume_apm_config_obfuscation_opensearch_enabled(&mut self, value: bool);
39    fn consume_apm_config_obfuscation_opensearch_keep_values(&mut self, value: Vec<String>);
40    fn consume_apm_config_obfuscation_opensearch_obfuscate_sql_values(&mut self, value: Vec<String>);
41    fn consume_apm_config_obfuscation_redis_enabled(&mut self, value: bool);
42    fn consume_apm_config_obfuscation_redis_remove_all_args(&mut self, value: bool);
43    fn consume_apm_config_obfuscation_valkey_enabled(&mut self, value: bool);
44    fn consume_apm_config_obfuscation_valkey_remove_all_args(&mut self, value: bool);
45    fn consume_apm_config_peer_tags(&mut self, value: Vec<String>);
46    fn consume_apm_config_peer_tags_aggregation(&mut self, value: bool);
47    fn consume_apm_config_probabilistic_sampler_enabled(&mut self, value: bool);
48    fn consume_apm_config_probabilistic_sampler_sampling_percentage(&mut self, value: f64);
49    fn consume_apm_config_target_traces_per_second(&mut self, value: f64);
50    fn consume_autoscaling_failover_enabled(&mut self, value: bool);
51    fn consume_autoscaling_failover_metrics(&mut self, value: Vec<String>);
52    fn consume_basic_telemetry_add_container_tags(&mut self, value: bool);
53    fn consume_bind_host(&mut self, value: String);
54    fn consume_cluster_agent_auth_token(&mut self, value: String);
55    fn consume_cluster_agent_enabled(&mut self, value: bool);
56    fn consume_cluster_agent_kubernetes_service_name(&mut self, value: String);
57    fn consume_cluster_agent_url(&mut self, value: String);
58    fn consume_cmd_port(&mut self, value: i64);
59    fn consume_cri_connection_timeout(&mut self, value: i64);
60    fn consume_cri_query_timeout(&mut self, value: i64);
61    fn consume_data_plane_api_listen_address(&mut self, value: String);
62    fn consume_data_plane_dogstatsd_aggregator_tag_filter_cache_capacity(&mut self, value: i64);
63    fn consume_data_plane_dogstatsd_enabled(&mut self, value: bool);
64    fn consume_data_plane_enabled(&mut self, value: bool);
65    fn consume_data_plane_log_file(&mut self, value: String);
66    fn consume_data_plane_otlp_enabled(&mut self, value: bool);
67    fn consume_data_plane_otlp_proxy_enabled(&mut self, value: bool);
68    fn consume_data_plane_otlp_proxy_logs_enabled(&mut self, value: bool);
69    fn consume_data_plane_otlp_proxy_metrics_enabled(&mut self, value: bool);
70    fn consume_data_plane_otlp_proxy_receiver_protocols_grpc_endpoint(&mut self, value: String);
71    fn consume_data_plane_otlp_proxy_traces_enabled(&mut self, value: bool);
72    fn consume_data_plane_remote_agent_enabled(&mut self, value: bool);
73    fn consume_data_plane_secure_api_listen_address(&mut self, value: String);
74    fn consume_data_plane_use_new_config_stream_endpoint(&mut self, value: bool);
75    fn consume_dd_url(&mut self, value: String);
76    fn consume_disable_file_logging(&mut self, value: bool);
77    fn consume_dogstatsd_buffer_size(&mut self, value: i64);
78    fn consume_dogstatsd_capture_depth(&mut self, value: i64);
79    fn consume_dogstatsd_capture_path(&mut self, value: String);
80    fn consume_dogstatsd_context_expiry_seconds(&mut self, value: i64);
81    fn consume_dogstatsd_disable_verbose_logs(&mut self, value: bool);
82    fn consume_dogstatsd_entity_id_precedence(&mut self, value: bool);
83    fn consume_dogstatsd_eol_required(&mut self, value: Vec<String>);
84    fn consume_dogstatsd_expiry_seconds(&mut self, value: i64);
85    fn consume_dogstatsd_flush_incomplete_buckets(&mut self, value: bool);
86    fn consume_dogstatsd_log_file(&mut self, value: String);
87    fn consume_dogstatsd_log_file_max_rolls(&mut self, value: i64);
88    fn consume_dogstatsd_log_file_max_size(&mut self, value: String);
89    fn consume_dogstatsd_logging_enabled(&mut self, value: bool);
90    fn consume_dogstatsd_mapper_cache_size(&mut self, value: i64);
91    fn consume_dogstatsd_mapper_profiles(&mut self, value: Vec<::serde_json::Value>);
92    fn consume_dogstatsd_metrics_stats_enable(&mut self, value: bool);
93    fn consume_dogstatsd_no_aggregation_pipeline(&mut self, value: bool);
94    fn consume_dogstatsd_non_local_traffic(&mut self, value: bool);
95    fn consume_dogstatsd_origin_detection(&mut self, value: bool);
96    fn consume_dogstatsd_origin_detection_client(&mut self, value: bool);
97    fn consume_dogstatsd_origin_optout_enabled(&mut self, value: bool);
98    fn consume_dogstatsd_pipe_name(&mut self, value: String);
99    fn consume_dogstatsd_port(&mut self, value: i64);
100    fn consume_dogstatsd_so_rcvbuf(&mut self, value: i64);
101    fn consume_dogstatsd_socket(&mut self, value: Option<String>);
102    fn consume_dogstatsd_stream_log_too_big(&mut self, value: bool);
103    fn consume_dogstatsd_stream_socket(&mut self, value: String);
104    fn consume_dogstatsd_string_interner_size(&mut self, value: i64);
105    fn consume_dogstatsd_tag_cardinality(&mut self, value: String);
106    fn consume_dogstatsd_tags(&mut self, value: Vec<String>);
107    fn consume_dogstatsd_windows_pipe_security_descriptor(&mut self, value: String);
108    fn consume_enable_payloads_events(&mut self, value: bool);
109    fn consume_enable_payloads_series(&mut self, value: bool);
110    fn consume_enable_payloads_service_checks(&mut self, value: bool);
111    fn consume_enable_payloads_sketches(&mut self, value: bool);
112    fn consume_env(&mut self, value: String);
113    fn consume_expected_tags_duration(&mut self, value: std::time::Duration);
114    fn consume_forwarder_apikey_validation_interval(&mut self, value: i64);
115    fn consume_forwarder_backoff_base(&mut self, value: i64);
116    fn consume_forwarder_backoff_factor(&mut self, value: i64);
117    fn consume_forwarder_backoff_max(&mut self, value: i64);
118    fn consume_forwarder_connection_reset_interval(&mut self, value: i64);
119    fn consume_forwarder_flush_to_disk_mem_ratio(&mut self, value: f64);
120    fn consume_forwarder_high_prio_buffer_size(&mut self, value: i64);
121    fn consume_forwarder_http_protocol(&mut self, value: String);
122    fn consume_forwarder_max_concurrent_requests(&mut self, value: i64);
123    fn consume_forwarder_num_workers(&mut self, value: i64);
124    fn consume_forwarder_outdated_file_in_days(&mut self, value: i64);
125    fn consume_forwarder_recovery_interval(&mut self, value: i64);
126    fn consume_forwarder_recovery_reset(&mut self, value: bool);
127    fn consume_forwarder_retry_queue_capacity_time_interval_sec(&mut self, value: i64);
128    fn consume_forwarder_retry_queue_max_size(&mut self, value: i64);
129    fn consume_forwarder_retry_queue_payloads_max_size(&mut self, value: i64);
130    fn consume_forwarder_stop_timeout(&mut self, value: i64);
131    fn consume_forwarder_storage_max_disk_ratio(&mut self, value: f64);
132    fn consume_forwarder_storage_max_size_in_bytes(&mut self, value: i64);
133    fn consume_forwarder_storage_path(&mut self, value: String);
134    fn consume_forwarder_timeout(&mut self, value: i64);
135    fn consume_histogram_aggregates(&mut self, value: Vec<String>);
136    fn consume_histogram_copy_to_distribution(&mut self, value: bool);
137    fn consume_histogram_copy_to_distribution_prefix(&mut self, value: String);
138    fn consume_histogram_percentiles(&mut self, value: Vec<String>);
139    fn consume_log_file_max_rolls(&mut self, value: i64);
140    fn consume_log_file_max_size(&mut self, value: String);
141    fn consume_log_format_json(&mut self, value: bool);
142    fn consume_log_format_rfc3339(&mut self, value: bool);
143    fn consume_log_level(&mut self, value: String);
144    fn consume_log_payloads(&mut self, value: bool);
145    fn consume_log_to_console(&mut self, value: bool);
146    fn consume_log_to_syslog(&mut self, value: bool);
147    fn consume_metric_filterlist(&mut self, value: Vec<String>);
148    fn consume_metric_filterlist_match_prefix(&mut self, value: bool);
149    fn consume_metric_tag_filterlist(&mut self, value: Vec<::serde_json::Value>);
150    fn consume_min_tls_version(&mut self, value: String);
151    fn consume_multi_region_failover_api_key(&mut self, value: String);
152    fn consume_multi_region_failover_dd_url(&mut self, value: String);
153    fn consume_multi_region_failover_enabled(&mut self, value: bool);
154    fn consume_multi_region_failover_failover_metrics(&mut self, value: bool);
155    fn consume_multi_region_failover_metric_allowlist(&mut self, value: Vec<String>);
156    fn consume_multi_region_failover_site(&mut self, value: String);
157    fn consume_no_proxy_nonexact_match(&mut self, value: bool);
158    fn consume_observability_pipelines_worker_metrics_enabled(&mut self, value: bool);
159    fn consume_observability_pipelines_worker_metrics_url(&mut self, value: String);
160    fn consume_observability_pipelines_worker_metrics_use_v3_api_series(&mut self, value: bool);
161    fn consume_origin_detection_unified(&mut self, value: bool);
162    fn consume_otlp_config_logs_enabled(&mut self, value: bool);
163    fn consume_otlp_config_metrics_enabled(&mut self, value: bool);
164    fn consume_otlp_config_metrics_histograms_mode(&mut self, value: String);
165    fn consume_otlp_config_metrics_histograms_send_aggregation_metrics(&mut self, value: bool);
166    fn consume_otlp_config_metrics_resource_attributes_as_tags(&mut self, value: bool);
167    fn consume_otlp_config_metrics_summaries_mode(&mut self, value: String);
168    fn consume_otlp_config_metrics_sums_cumulative_monotonic_mode(&mut self, value: String);
169    fn consume_otlp_config_metrics_sums_initial_cumulative_monotonic_value(&mut self, value: String);
170    fn consume_otlp_config_metrics_tags(&mut self, value: String);
171    fn consume_otlp_config_receiver_protocols_grpc_endpoint(&mut self, value: String);
172    fn consume_otlp_config_receiver_protocols_grpc_max_recv_msg_size_mib(&mut self, value: i64);
173    fn consume_otlp_config_receiver_protocols_grpc_transport(&mut self, value: String);
174    fn consume_otlp_config_receiver_protocols_http_endpoint(&mut self, value: String);
175    fn consume_otlp_config_traces_enabled(&mut self, value: bool);
176    fn consume_otlp_config_traces_internal_port(&mut self, value: i64);
177    fn consume_otlp_config_traces_probabilistic_sampler_sampling_percentage(&mut self, value: f64);
178    fn consume_provider_kind(&mut self, value: String);
179    fn consume_proxy_http(&mut self, value: String);
180    fn consume_proxy_https(&mut self, value: String);
181    fn consume_proxy_no_proxy(&mut self, value: Vec<String>);
182    fn consume_serializer_compressor_kind(&mut self, value: String);
183    fn consume_serializer_experimental_use_v3_api_compression_level(&mut self, value: i64);
184    fn consume_serializer_experimental_use_v3_api_series_beta_route(&mut self, value: String);
185    fn consume_serializer_experimental_use_v3_api_series_endpoints(&mut self, value: Vec<String>);
186    fn consume_serializer_experimental_use_v3_api_series_shadow_sample_rate(&mut self, value: f64);
187    fn consume_serializer_experimental_use_v3_api_series_shadow_sites(&mut self, value: Vec<String>);
188    fn consume_serializer_experimental_use_v3_api_series_use_beta(&mut self, value: bool);
189    fn consume_serializer_experimental_use_v3_api_series_validate(&mut self, value: bool);
190    fn consume_serializer_experimental_use_v3_api_sketches_endpoints(&mut self, value: Vec<String>);
191    fn consume_serializer_experimental_use_v3_api_sketches_validate(&mut self, value: bool);
192    fn consume_serializer_max_payload_size(&mut self, value: i64);
193    fn consume_serializer_max_series_payload_size(&mut self, value: i64);
194    fn consume_serializer_max_series_points_per_payload(&mut self, value: i64);
195    fn consume_serializer_max_series_uncompressed_payload_size(&mut self, value: i64);
196    fn consume_serializer_max_uncompressed_payload_size(&mut self, value: i64);
197    fn consume_serializer_zstd_compressor_level(&mut self, value: i64);
198    fn consume_site(&mut self, value: String);
199    fn consume_skip_ssl_validation(&mut self, value: bool);
200    fn consume_sslkeylogfile(&mut self, value: String);
201    fn consume_statsd_forward_host(&mut self, value: String);
202    fn consume_statsd_forward_port(&mut self, value: i64);
203    fn consume_statsd_metric_blocklist(&mut self, value: Vec<String>);
204    fn consume_statsd_metric_blocklist_match_prefix(&mut self, value: bool);
205    fn consume_statsd_metric_namespace(&mut self, value: String);
206    fn consume_statsd_metric_namespace_blacklist(&mut self, value: Vec<String>);
207    fn consume_syslog_rfc(&mut self, value: bool);
208    fn consume_syslog_uri(&mut self, value: String);
209    fn consume_telemetry_dogstatsd_origin(&mut self, value: bool);
210    fn consume_use_proxy_for_cloud_metadata(&mut self, value: bool);
211    fn consume_use_v2_api_series(&mut self, value: bool);
212    fn consume_use_v3_api_series_enabled(&mut self, value: String);
213    fn consume_use_v3_api_series_endpoints(&mut self, value: ::serde_json::Map<String, ::serde_json::Value>);
214    fn consume_vector_metrics_enabled(&mut self, value: bool);
215    fn consume_vector_metrics_url(&mut self, value: String);
216    fn consume_vector_metrics_use_v3_api_series(&mut self, value: bool);
217    fn consume_vsock_addr(&mut self, value: String);
218
219    /// Drains every translation error recorded while consuming.
220    fn translate_errors(&mut self) -> Vec<TranslateError> {
221        Vec::new()
222    }
223}
224
225/// Drives a consumer over every supported key in `config`, calling each `consume_<key>` exactly
226/// once with the value navigated from `config`.
227///
228/// # Errors
229///
230/// Returns every [`TranslateError`] the consumer recorded, once all keys are consumed.
231pub fn drive(config: &DatadogConfiguration, consumer: &mut impl DatadogConfigWitness) -> Result<(), TranslateErrors> {
232    consumer.consume_additional_endpoints(config.additional_endpoints.clone());
233    consumer.consume_agent_ipc_grpc_max_message_size(config.agent_ipc.grpc_max_message_size.clone());
234    consumer.consume_aggregator_stop_timeout(config.aggregator_stop_timeout.clone());
235    consumer.consume_allow_arbitrary_tags(config.allow_arbitrary_tags.clone());
236    consumer.consume_api_key(config.api_key.clone());
237    consumer.consume_apm_config_compute_stats_by_span_kind(config.apm_config.compute_stats_by_span_kind.clone());
238    consumer.consume_apm_config_enable_rare_sampler(config.apm_config.enable_rare_sampler.clone());
239    consumer.consume_apm_config_error_tracking_standalone_enabled(config.apm_config.error_tracking_standalone.enabled.clone());
240    consumer.consume_apm_config_errors_per_second(config.apm_config.errors_per_second.clone());
241    consumer.consume_apm_config_obfuscation_credit_cards_enabled(config.apm_config.obfuscation.credit_cards.enabled.clone());
242    consumer.consume_apm_config_obfuscation_credit_cards_keep_values(config.apm_config.obfuscation.credit_cards.keep_values.clone());
243    consumer.consume_apm_config_obfuscation_credit_cards_luhn(config.apm_config.obfuscation.credit_cards.luhn.clone());
244    consumer.consume_apm_config_obfuscation_elasticsearch_enabled(config.apm_config.obfuscation.elasticsearch.enabled.clone());
245    consumer.consume_apm_config_obfuscation_elasticsearch_keep_values(config.apm_config.obfuscation.elasticsearch.keep_values.clone());
246    consumer.consume_apm_config_obfuscation_elasticsearch_obfuscate_sql_values(config.apm_config.obfuscation.elasticsearch.obfuscate_sql_values.clone());
247    consumer.consume_apm_config_obfuscation_http_remove_paths_with_digits(config.apm_config.obfuscation.http.remove_paths_with_digits.clone());
248    consumer.consume_apm_config_obfuscation_http_remove_query_string(config.apm_config.obfuscation.http.remove_query_string.clone());
249    consumer.consume_apm_config_obfuscation_memcached_enabled(config.apm_config.obfuscation.memcached.enabled.clone());
250    consumer.consume_apm_config_obfuscation_memcached_keep_command(config.apm_config.obfuscation.memcached.keep_command.clone());
251    consumer.consume_apm_config_obfuscation_mongodb_enabled(config.apm_config.obfuscation.mongodb.enabled.clone());
252    consumer.consume_apm_config_obfuscation_mongodb_keep_values(config.apm_config.obfuscation.mongodb.keep_values.clone());
253    consumer.consume_apm_config_obfuscation_mongodb_obfuscate_sql_values(config.apm_config.obfuscation.mongodb.obfuscate_sql_values.clone());
254    consumer.consume_apm_config_obfuscation_opensearch_enabled(config.apm_config.obfuscation.opensearch.enabled.clone());
255    consumer.consume_apm_config_obfuscation_opensearch_keep_values(config.apm_config.obfuscation.opensearch.keep_values.clone());
256    consumer.consume_apm_config_obfuscation_opensearch_obfuscate_sql_values(config.apm_config.obfuscation.opensearch.obfuscate_sql_values.clone());
257    consumer.consume_apm_config_obfuscation_redis_enabled(config.apm_config.obfuscation.redis.enabled.clone());
258    consumer.consume_apm_config_obfuscation_redis_remove_all_args(config.apm_config.obfuscation.redis.remove_all_args.clone());
259    consumer.consume_apm_config_obfuscation_valkey_enabled(config.apm_config.obfuscation.valkey.enabled.clone());
260    consumer.consume_apm_config_obfuscation_valkey_remove_all_args(config.apm_config.obfuscation.valkey.remove_all_args.clone());
261    consumer.consume_apm_config_peer_tags(config.apm_config.peer_tags.clone());
262    consumer.consume_apm_config_peer_tags_aggregation(config.apm_config.peer_tags_aggregation.clone());
263    consumer.consume_apm_config_probabilistic_sampler_enabled(config.apm_config.probabilistic_sampler.enabled.clone());
264    consumer.consume_apm_config_probabilistic_sampler_sampling_percentage(config.apm_config.probabilistic_sampler.sampling_percentage.clone());
265    consumer.consume_apm_config_target_traces_per_second(config.apm_config.target_traces_per_second.clone());
266    consumer.consume_autoscaling_failover_enabled(config.autoscaling.failover.enabled.clone());
267    consumer.consume_autoscaling_failover_metrics(config.autoscaling.failover.metrics.clone());
268    consumer.consume_basic_telemetry_add_container_tags(config.basic_telemetry_add_container_tags.clone());
269    consumer.consume_bind_host(config.bind_host.clone());
270    consumer.consume_cluster_agent_auth_token(config.cluster_agent.auth_token.clone());
271    consumer.consume_cluster_agent_enabled(config.cluster_agent.enabled.clone());
272    consumer.consume_cluster_agent_kubernetes_service_name(config.cluster_agent.kubernetes_service_name.clone());
273    consumer.consume_cluster_agent_url(config.cluster_agent.url.clone());
274    consumer.consume_cmd_port(config.cmd_port.clone());
275    consumer.consume_cri_connection_timeout(config.cri_connection_timeout.clone());
276    consumer.consume_cri_query_timeout(config.cri_query_timeout.clone());
277    consumer.consume_data_plane_api_listen_address(config.data_plane.api_listen_address.clone());
278    consumer.consume_data_plane_dogstatsd_aggregator_tag_filter_cache_capacity(config.data_plane.dogstatsd.aggregator_tag_filter_cache_capacity.clone());
279    consumer.consume_data_plane_dogstatsd_enabled(config.data_plane.dogstatsd.enabled.clone());
280    consumer.consume_data_plane_enabled(config.data_plane.enabled.clone());
281    consumer.consume_data_plane_log_file(config.data_plane.log_file.clone());
282    consumer.consume_data_plane_otlp_enabled(config.data_plane.otlp.enabled.clone());
283    consumer.consume_data_plane_otlp_proxy_enabled(config.data_plane.otlp.proxy.enabled.clone());
284    consumer.consume_data_plane_otlp_proxy_logs_enabled(config.data_plane.otlp.proxy.logs.enabled.clone());
285    consumer.consume_data_plane_otlp_proxy_metrics_enabled(config.data_plane.otlp.proxy.metrics.enabled.clone());
286    consumer.consume_data_plane_otlp_proxy_receiver_protocols_grpc_endpoint(config.data_plane.otlp.proxy.receiver.protocols.grpc.endpoint.clone());
287    consumer.consume_data_plane_otlp_proxy_traces_enabled(config.data_plane.otlp.proxy.traces.enabled.clone());
288    consumer.consume_data_plane_remote_agent_enabled(config.data_plane.remote_agent_enabled.clone());
289    consumer.consume_data_plane_secure_api_listen_address(config.data_plane.secure_api_listen_address.clone());
290    consumer.consume_data_plane_use_new_config_stream_endpoint(config.data_plane.use_new_config_stream_endpoint.clone());
291    consumer.consume_dd_url(config.dd_url.clone());
292    consumer.consume_disable_file_logging(config.disable_file_logging.clone());
293    consumer.consume_dogstatsd_buffer_size(config.dogstatsd_buffer_size.clone());
294    consumer.consume_dogstatsd_capture_depth(config.dogstatsd_capture_depth.clone());
295    consumer.consume_dogstatsd_capture_path(config.dogstatsd_capture_path.clone());
296    consumer.consume_dogstatsd_context_expiry_seconds(config.dogstatsd_context_expiry_seconds.clone());
297    consumer.consume_dogstatsd_disable_verbose_logs(config.dogstatsd_disable_verbose_logs.clone());
298    consumer.consume_dogstatsd_entity_id_precedence(config.dogstatsd_entity_id_precedence.clone());
299    consumer.consume_dogstatsd_eol_required(config.dogstatsd_eol_required.clone());
300    consumer.consume_dogstatsd_expiry_seconds(config.dogstatsd_expiry_seconds.clone());
301    consumer.consume_dogstatsd_flush_incomplete_buckets(config.dogstatsd_flush_incomplete_buckets.clone());
302    consumer.consume_dogstatsd_log_file(config.dogstatsd_log_file.clone());
303    consumer.consume_dogstatsd_log_file_max_rolls(config.dogstatsd_log_file_max_rolls.clone());
304    consumer.consume_dogstatsd_log_file_max_size(config.dogstatsd_log_file_max_size.clone());
305    consumer.consume_dogstatsd_logging_enabled(config.dogstatsd_logging_enabled.clone());
306    consumer.consume_dogstatsd_mapper_cache_size(config.dogstatsd_mapper_cache_size.clone());
307    consumer.consume_dogstatsd_mapper_profiles(config.dogstatsd_mapper_profiles.clone());
308    consumer.consume_dogstatsd_metrics_stats_enable(config.dogstatsd_metrics_stats_enable.clone());
309    consumer.consume_dogstatsd_no_aggregation_pipeline(config.dogstatsd_no_aggregation_pipeline.clone());
310    consumer.consume_dogstatsd_non_local_traffic(config.dogstatsd_non_local_traffic.clone());
311    consumer.consume_dogstatsd_origin_detection(config.dogstatsd_origin_detection.clone());
312    consumer.consume_dogstatsd_origin_detection_client(config.dogstatsd_origin_detection_client.clone());
313    consumer.consume_dogstatsd_origin_optout_enabled(config.dogstatsd_origin_optout_enabled.clone());
314    consumer.consume_dogstatsd_pipe_name(config.dogstatsd_pipe_name.clone());
315    consumer.consume_dogstatsd_port(config.dogstatsd_port.clone());
316    consumer.consume_dogstatsd_so_rcvbuf(config.dogstatsd_so_rcvbuf.clone());
317    consumer.consume_dogstatsd_socket(config.dogstatsd_socket.clone());
318    consumer.consume_dogstatsd_stream_log_too_big(config.dogstatsd_stream_log_too_big.clone());
319    consumer.consume_dogstatsd_stream_socket(config.dogstatsd_stream_socket.clone());
320    consumer.consume_dogstatsd_string_interner_size(config.dogstatsd_string_interner_size.clone());
321    consumer.consume_dogstatsd_tag_cardinality(config.dogstatsd_tag_cardinality.clone());
322    consumer.consume_dogstatsd_tags(config.dogstatsd_tags.clone());
323    consumer.consume_dogstatsd_windows_pipe_security_descriptor(config.dogstatsd_windows_pipe_security_descriptor.clone());
324    consumer.consume_enable_payloads_events(config.enable_payloads.events.clone());
325    consumer.consume_enable_payloads_series(config.enable_payloads.series.clone());
326    consumer.consume_enable_payloads_service_checks(config.enable_payloads.service_checks.clone());
327    consumer.consume_enable_payloads_sketches(config.enable_payloads.sketches.clone());
328    consumer.consume_env(config.env.clone());
329    consumer.consume_expected_tags_duration(config.expected_tags_duration.clone());
330    consumer.consume_forwarder_apikey_validation_interval(config.forwarder_apikey_validation_interval.clone());
331    consumer.consume_forwarder_backoff_base(config.forwarder_backoff_base.clone());
332    consumer.consume_forwarder_backoff_factor(config.forwarder_backoff_factor.clone());
333    consumer.consume_forwarder_backoff_max(config.forwarder_backoff_max.clone());
334    consumer.consume_forwarder_connection_reset_interval(config.forwarder_connection_reset_interval.clone());
335    consumer.consume_forwarder_flush_to_disk_mem_ratio(config.forwarder_flush_to_disk_mem_ratio.clone());
336    consumer.consume_forwarder_high_prio_buffer_size(config.forwarder_high_prio_buffer_size.clone());
337    consumer.consume_forwarder_http_protocol(config.forwarder_http_protocol.clone());
338    consumer.consume_forwarder_max_concurrent_requests(config.forwarder_max_concurrent_requests.clone());
339    consumer.consume_forwarder_num_workers(config.forwarder_num_workers.clone());
340    consumer.consume_forwarder_outdated_file_in_days(config.forwarder_outdated_file_in_days.clone());
341    consumer.consume_forwarder_recovery_interval(config.forwarder_recovery_interval.clone());
342    consumer.consume_forwarder_recovery_reset(config.forwarder_recovery_reset.clone());
343    consumer.consume_forwarder_retry_queue_capacity_time_interval_sec(config.forwarder_retry_queue_capacity_time_interval_sec.clone());
344    consumer.consume_forwarder_retry_queue_max_size(config.forwarder_retry_queue_max_size.clone());
345    consumer.consume_forwarder_retry_queue_payloads_max_size(config.forwarder_retry_queue_payloads_max_size.clone());
346    consumer.consume_forwarder_stop_timeout(config.forwarder_stop_timeout.clone());
347    consumer.consume_forwarder_storage_max_disk_ratio(config.forwarder_storage_max_disk_ratio.clone());
348    consumer.consume_forwarder_storage_max_size_in_bytes(config.forwarder_storage_max_size_in_bytes.clone());
349    consumer.consume_forwarder_storage_path(config.forwarder_storage_path.clone());
350    consumer.consume_forwarder_timeout(config.forwarder_timeout.clone());
351    consumer.consume_histogram_aggregates(config.histogram_aggregates.clone());
352    consumer.consume_histogram_copy_to_distribution(config.histogram_copy_to_distribution.clone());
353    consumer.consume_histogram_copy_to_distribution_prefix(config.histogram_copy_to_distribution_prefix.clone());
354    consumer.consume_histogram_percentiles(config.histogram_percentiles.clone());
355    consumer.consume_log_file_max_rolls(config.log_file_max_rolls.clone());
356    consumer.consume_log_file_max_size(config.log_file_max_size.clone());
357    consumer.consume_log_format_json(config.log_format_json.clone());
358    consumer.consume_log_format_rfc3339(config.log_format_rfc3339.clone());
359    consumer.consume_log_level(config.log_level.clone());
360    consumer.consume_log_payloads(config.log_payloads.clone());
361    consumer.consume_log_to_console(config.log_to_console.clone());
362    consumer.consume_log_to_syslog(config.log_to_syslog.clone());
363    consumer.consume_metric_filterlist(config.metric_filterlist.clone());
364    consumer.consume_metric_filterlist_match_prefix(config.metric_filterlist_match_prefix.clone());
365    consumer.consume_metric_tag_filterlist(config.metric_tag_filterlist.clone());
366    consumer.consume_min_tls_version(config.min_tls_version.clone());
367    consumer.consume_multi_region_failover_api_key(config.multi_region_failover.api_key.clone());
368    consumer.consume_multi_region_failover_dd_url(config.multi_region_failover.dd_url.clone());
369    consumer.consume_multi_region_failover_enabled(config.multi_region_failover.enabled.clone());
370    consumer.consume_multi_region_failover_failover_metrics(config.multi_region_failover.failover_metrics.clone());
371    consumer.consume_multi_region_failover_metric_allowlist(config.multi_region_failover.metric_allowlist.clone());
372    consumer.consume_multi_region_failover_site(config.multi_region_failover.site.clone());
373    consumer.consume_no_proxy_nonexact_match(config.no_proxy_nonexact_match.clone());
374    consumer.consume_observability_pipelines_worker_metrics_enabled(config.observability_pipelines_worker.metrics.enabled.clone());
375    consumer.consume_observability_pipelines_worker_metrics_url(config.observability_pipelines_worker.metrics.url.clone());
376    consumer.consume_observability_pipelines_worker_metrics_use_v3_api_series(config.observability_pipelines_worker.metrics.use_v3_api.series.clone());
377    consumer.consume_origin_detection_unified(config.origin_detection_unified.clone());
378    consumer.consume_otlp_config_logs_enabled(config.otlp_config.logs.enabled.clone());
379    consumer.consume_otlp_config_metrics_enabled(config.otlp_config.metrics.enabled.clone());
380    consumer.consume_otlp_config_metrics_histograms_mode(config.otlp_config.metrics.histograms.mode.clone());
381    consumer.consume_otlp_config_metrics_histograms_send_aggregation_metrics(config.otlp_config.metrics.histograms.send_aggregation_metrics.clone());
382    consumer.consume_otlp_config_metrics_resource_attributes_as_tags(config.otlp_config.metrics.resource_attributes_as_tags.clone());
383    consumer.consume_otlp_config_metrics_summaries_mode(config.otlp_config.metrics.summaries.mode.clone());
384    consumer.consume_otlp_config_metrics_sums_cumulative_monotonic_mode(config.otlp_config.metrics.sums.cumulative_monotonic_mode.clone());
385    consumer.consume_otlp_config_metrics_sums_initial_cumulative_monotonic_value(config.otlp_config.metrics.sums.initial_cumulative_monotonic_value.clone());
386    consumer.consume_otlp_config_metrics_tags(config.otlp_config.metrics.tags.clone());
387    consumer.consume_otlp_config_receiver_protocols_grpc_endpoint(config.otlp_config.receiver.protocols.grpc.endpoint.clone());
388    consumer.consume_otlp_config_receiver_protocols_grpc_max_recv_msg_size_mib(config.otlp_config.receiver.protocols.grpc.max_recv_msg_size_mib.clone());
389    consumer.consume_otlp_config_receiver_protocols_grpc_transport(config.otlp_config.receiver.protocols.grpc.transport.clone());
390    consumer.consume_otlp_config_receiver_protocols_http_endpoint(config.otlp_config.receiver.protocols.http.endpoint.clone());
391    consumer.consume_otlp_config_traces_enabled(config.otlp_config.traces.enabled.clone());
392    consumer.consume_otlp_config_traces_internal_port(config.otlp_config.traces.internal_port.clone());
393    consumer.consume_otlp_config_traces_probabilistic_sampler_sampling_percentage(config.otlp_config.traces.probabilistic_sampler.sampling_percentage.clone());
394    consumer.consume_provider_kind(config.provider_kind.clone());
395    consumer.consume_proxy_http(config.proxy.http.clone());
396    consumer.consume_proxy_https(config.proxy.https.clone());
397    consumer.consume_proxy_no_proxy(config.proxy.no_proxy.clone());
398    consumer.consume_serializer_compressor_kind(config.serializer_compressor_kind.clone());
399    consumer.consume_serializer_experimental_use_v3_api_compression_level(config.serializer_experimental_use_v3_api.compression_level.clone());
400    consumer.consume_serializer_experimental_use_v3_api_series_beta_route(config.serializer_experimental_use_v3_api.series.beta_route.clone());
401    consumer.consume_serializer_experimental_use_v3_api_series_endpoints(config.serializer_experimental_use_v3_api.series.endpoints.clone());
402    consumer.consume_serializer_experimental_use_v3_api_series_shadow_sample_rate(config.serializer_experimental_use_v3_api.series.shadow_sample_rate.clone());
403    consumer.consume_serializer_experimental_use_v3_api_series_shadow_sites(config.serializer_experimental_use_v3_api.series.shadow_sites.clone());
404    consumer.consume_serializer_experimental_use_v3_api_series_use_beta(config.serializer_experimental_use_v3_api.series.use_beta.clone());
405    consumer.consume_serializer_experimental_use_v3_api_series_validate(config.serializer_experimental_use_v3_api.series.validate.clone());
406    consumer.consume_serializer_experimental_use_v3_api_sketches_endpoints(config.serializer_experimental_use_v3_api.sketches.endpoints.clone());
407    consumer.consume_serializer_experimental_use_v3_api_sketches_validate(config.serializer_experimental_use_v3_api.sketches.validate.clone());
408    consumer.consume_serializer_max_payload_size(config.serializer_max_payload_size.clone());
409    consumer.consume_serializer_max_series_payload_size(config.serializer_max_series_payload_size.clone());
410    consumer.consume_serializer_max_series_points_per_payload(config.serializer_max_series_points_per_payload.clone());
411    consumer.consume_serializer_max_series_uncompressed_payload_size(config.serializer_max_series_uncompressed_payload_size.clone());
412    consumer.consume_serializer_max_uncompressed_payload_size(config.serializer_max_uncompressed_payload_size.clone());
413    consumer.consume_serializer_zstd_compressor_level(config.serializer_zstd_compressor_level.clone());
414    consumer.consume_site(config.site.clone());
415    consumer.consume_skip_ssl_validation(config.skip_ssl_validation.clone());
416    consumer.consume_sslkeylogfile(config.sslkeylogfile.clone());
417    consumer.consume_statsd_forward_host(config.statsd_forward_host.clone());
418    consumer.consume_statsd_forward_port(config.statsd_forward_port.clone());
419    consumer.consume_statsd_metric_blocklist(config.statsd_metric_blocklist.clone());
420    consumer.consume_statsd_metric_blocklist_match_prefix(config.statsd_metric_blocklist_match_prefix.clone());
421    consumer.consume_statsd_metric_namespace(config.statsd_metric_namespace.clone());
422    consumer.consume_statsd_metric_namespace_blacklist(config.statsd_metric_namespace_blacklist.clone());
423    consumer.consume_syslog_rfc(config.syslog_rfc.clone());
424    consumer.consume_syslog_uri(config.syslog_uri.clone());
425    consumer.consume_telemetry_dogstatsd_origin(config.telemetry.dogstatsd_origin.clone());
426    consumer.consume_use_proxy_for_cloud_metadata(config.use_proxy_for_cloud_metadata.clone());
427    consumer.consume_use_v2_api_series(config.use_v2_api.series.clone());
428    consumer.consume_use_v3_api_series_enabled(config.use_v3_api.series.enabled.clone());
429    consumer.consume_use_v3_api_series_endpoints(config.use_v3_api.series.endpoints.clone());
430    consumer.consume_vector_metrics_enabled(config.vector.metrics.enabled.clone());
431    consumer.consume_vector_metrics_url(config.vector.metrics.url.clone());
432    consumer.consume_vector_metrics_use_v3_api_series(config.vector.metrics.use_v3_api.series.clone());
433    consumer.consume_vsock_addr(config.vsock_addr.clone());
434
435    let errors = consumer.translate_errors();
436    if errors.is_empty() {
437        Ok(())
438    } else {
439        Err(TranslateErrors::new(errors))
440    }
441}