Skip to main content

datadog_agent_config/generated/
datadog_configuration.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, unused)]
4
5// Including the schema documentation here is noisy and causes issues with doc lints.
6#![allow(missing_docs)]
7
8use std::collections::HashMap;
9
10/// Error types.
11pub mod error {
12    pub struct ConversionError(::std::borrow::Cow<'static, str>);
13    impl ::std::error::Error for ConversionError {}
14    impl ::std::fmt::Display for ConversionError {
15        fn fmt(
16            &self,
17            f: &mut ::std::fmt::Formatter<'_>,
18        ) -> Result<(), ::std::fmt::Error> {
19            ::std::fmt::Display::fmt(&self.0, f)
20        }
21    }
22    impl ::std::fmt::Debug for ConversionError {
23        fn fmt(
24            &self,
25            f: &mut ::std::fmt::Formatter<'_>,
26        ) -> Result<(), ::std::fmt::Error> {
27            ::std::fmt::Debug::fmt(&self.0, f)
28        }
29    }
30    impl From<&'static str> for ConversionError {
31        fn from(value: &'static str) -> Self {
32            Self(value.into())
33        }
34    }
35    impl From<String> for ConversionError {
36        fn from(value: String) -> Self {
37            Self(value.into())
38        }
39    }
40}
41
42#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
43pub struct DatadogConfiguration {
44    #[serde(default, skip_serializing_if = ":: std :: collections :: HashMap::is_empty")]
45    #[serde(deserialize_with = "crate::list_de::deserialize_string_map_scalar_or_seq")]
46    pub additional_endpoints: HashMap<String, Vec<String>>,
47
48    #[serde(default)]
49    pub agent_ipc: AgentIpc,
50
51    #[serde(default = "defaults::default_u64::<i64, 2>")]
52    #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
53    pub aggregator_stop_timeout: i64,
54
55    #[serde(default)]
56    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
57    pub allow_arbitrary_tags: bool,
58
59    #[serde(default)]
60    #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
61    pub api_key: String,
62
63    #[serde(default)]
64    pub apm_config: ApmConfig,
65
66    #[serde(default)]
67    #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
68    pub auth_token_file_path: String,
69
70    #[serde(default)]
71    pub autoscaling: Autoscaling,
72
73    #[serde(default)]
74    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
75    pub basic_telemetry_add_container_tags: bool,
76
77    #[serde(default)]
78    #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
79    pub bind_host: String,
80
81    #[serde(default)]
82    pub cluster_agent: ClusterAgent,
83
84    #[serde(default)]
85    #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
86    pub cluster_name: String,
87
88    #[serde(default = "defaults::default_u64::<i64, 5001>")]
89    #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
90    pub cmd_port: i64,
91
92    #[serde(default = "defaults::datadog_configuration_container_cgroup_root")]
93    #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
94    pub container_cgroup_root: String,
95
96    #[serde(default = "defaults::datadog_configuration_container_proc_root")]
97    #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
98    pub container_proc_root: String,
99
100    #[serde(default = "defaults::default_u64::<i64, 1>")]
101    #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
102    pub cri_connection_timeout: i64,
103
104    #[serde(default = "defaults::default_u64::<i64, 5>")]
105    #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
106    pub cri_query_timeout: i64,
107
108    #[serde(default)]
109    #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
110    pub cri_socket_path: String,
111
112    #[serde(default)]
113    pub data_plane: DataPlane,
114
115    #[serde(default = "defaults::datadog_configuration_dd_url")]
116    #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
117    pub dd_url: String,
118
119    #[serde(default)]
120    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
121    pub disable_file_logging: bool,
122
123    #[serde(default = "defaults::default_u64::<i64, 8192>")]
124    #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
125    pub dogstatsd_buffer_size: i64,
126
127    #[serde(default)]
128    #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
129    pub dogstatsd_capture_depth: i64,
130
131    #[serde(default)]
132    #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
133    pub dogstatsd_capture_path: String,
134
135    #[serde(default = "defaults::default_u64::<i64, 20>")]
136    #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
137    pub dogstatsd_context_expiry_seconds: i64,
138
139    #[serde(default)]
140    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
141    pub dogstatsd_disable_verbose_logs: bool,
142
143    #[serde(default)]
144    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
145    pub dogstatsd_entity_id_precedence: bool,
146
147    #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")]
148    #[serde(deserialize_with = "crate::list_de::deserialize_space_separated_or_seq")]
149    pub dogstatsd_eol_required: Vec<String>,
150
151    #[serde(default = "defaults::default_u64::<i64, 300>")]
152    #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
153    pub dogstatsd_expiry_seconds: i64,
154
155    #[serde(default)]
156    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
157    pub dogstatsd_flush_incomplete_buckets: bool,
158
159    #[serde(default = "defaults::datadog_configuration_dogstatsd_log_file")]
160    #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
161    pub dogstatsd_log_file: String,
162
163    #[serde(default = "defaults::default_u64::<i64, 3>")]
164    #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
165    pub dogstatsd_log_file_max_rolls: i64,
166
167    #[serde(default = "defaults::datadog_configuration_dogstatsd_log_file_max_size")]
168    #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
169    pub dogstatsd_log_file_max_size: String,
170
171    #[serde(default = "defaults::default_bool::<true>")]
172    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
173    pub dogstatsd_logging_enabled: bool,
174
175    #[serde(default = "defaults::default_u64::<i64, 1000>")]
176    #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
177    pub dogstatsd_mapper_cache_size: i64,
178
179    #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")]
180    #[serde(deserialize_with = "crate::list_de::deserialize_json_array_or_string")]
181    pub dogstatsd_mapper_profiles: Vec<::serde_json::Value>,
182
183    #[serde(default)]
184    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
185    pub dogstatsd_metrics_stats_enable: bool,
186
187    #[serde(default = "defaults::default_bool::<true>")]
188    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
189    pub dogstatsd_no_aggregation_pipeline: bool,
190
191    #[serde(default)]
192    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
193    pub dogstatsd_non_local_traffic: bool,
194
195    #[serde(default)]
196    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
197    pub dogstatsd_origin_detection: bool,
198
199    #[serde(default)]
200    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
201    pub dogstatsd_origin_detection_client: bool,
202
203    #[serde(default = "defaults::default_bool::<true>")]
204    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
205    pub dogstatsd_origin_optout_enabled: bool,
206
207    #[serde(default)]
208    #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
209    pub dogstatsd_pipe_name: String,
210
211    #[serde(default = "defaults::default_u64::<i64, 8125>")]
212    #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
213    pub dogstatsd_port: i64,
214
215    #[serde(default)]
216    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
217    pub dogstatsd_require_listener: bool,
218
219    #[serde(default)]
220    #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
221    pub dogstatsd_so_rcvbuf: i64,
222
223    #[serde(default = "platform_defaults::dogstatsd_socket")]
224    #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
225    pub dogstatsd_socket: String,
226
227    #[serde(default)]
228    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
229    pub dogstatsd_stream_log_too_big: bool,
230
231    #[serde(default)]
232    #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
233    pub dogstatsd_stream_socket: String,
234
235    #[serde(default = "defaults::default_u64::<i64, 4096>")]
236    #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
237    pub dogstatsd_string_interner_size: i64,
238
239    #[serde(default = "defaults::datadog_configuration_dogstatsd_tag_cardinality")]
240    #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
241    pub dogstatsd_tag_cardinality: String,
242
243    #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")]
244    #[serde(deserialize_with = "crate::list_de::deserialize_space_separated_or_seq")]
245    pub dogstatsd_tags: Vec<String>,
246
247    #[serde(
248        default = "defaults::datadog_configuration_dogstatsd_windows_pipe_security_descriptor"
249    )]
250    #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
251    pub dogstatsd_windows_pipe_security_descriptor: String,
252
253    #[serde(default)]
254    #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
255    pub dogstatsd_workers_count: i64,
256
257    #[serde(default)]
258    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
259    pub eks_fargate: bool,
260
261    #[serde(default)]
262    pub enable_payloads: EnablePayloads,
263
264    #[serde(default)]
265    #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
266    pub env: String,
267
268    #[serde(
269        default = "duration_defaults::expected_tags_duration",
270
271        deserialize_with = "crate::duration_de::deserialize_go_duration"
272    )]
273    pub expected_tags_duration: std::time::Duration,
274
275    #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")]
276    #[serde(deserialize_with = "crate::list_de::deserialize_space_separated_or_seq")]
277    pub extra_tags: Vec<String>,
278
279    #[serde(default = "defaults::default_u64::<i64, 60>")]
280    #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
281    pub forwarder_apikey_validation_interval: i64,
282
283    #[serde(default = "defaults::datadog_configuration_forwarder_backoff_base")]
284    #[serde(deserialize_with = "crate::cast_de::deserialize_f64")]
285    pub forwarder_backoff_base: f64,
286
287    #[serde(default = "defaults::datadog_configuration_forwarder_backoff_factor")]
288    #[serde(deserialize_with = "crate::cast_de::deserialize_f64")]
289    pub forwarder_backoff_factor: f64,
290
291    #[serde(default = "defaults::datadog_configuration_forwarder_backoff_max")]
292    #[serde(deserialize_with = "crate::cast_de::deserialize_f64")]
293    pub forwarder_backoff_max: f64,
294
295    #[serde(default)]
296    #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
297    pub forwarder_connection_reset_interval: i64,
298
299    #[serde(
300        default = "defaults::datadog_configuration_forwarder_flush_to_disk_mem_ratio"
301    )]
302    #[serde(deserialize_with = "crate::cast_de::deserialize_f64")]
303    pub forwarder_flush_to_disk_mem_ratio: f64,
304
305    #[serde(default = "defaults::default_u64::<i64, 100>")]
306    #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
307    pub forwarder_high_prio_buffer_size: i64,
308
309    #[serde(default = "defaults::datadog_configuration_forwarder_http_protocol")]
310    #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
311    pub forwarder_http_protocol: String,
312
313    #[serde(default = "defaults::default_u64::<i64, 10>")]
314    #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
315    pub forwarder_max_concurrent_requests: i64,
316
317    #[serde(default = "defaults::default_u64::<i64, 1>")]
318    #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
319    pub forwarder_num_workers: i64,
320
321    #[serde(default = "defaults::default_u64::<i64, 10>")]
322    #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
323    pub forwarder_outdated_file_in_days: i64,
324
325    #[serde(default = "defaults::default_u64::<i64, 2>")]
326    #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
327    pub forwarder_recovery_interval: i64,
328
329    #[serde(default)]
330    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
331    pub forwarder_recovery_reset: bool,
332
333    #[serde(default = "defaults::default_u64::<i64, 900>")]
334    #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
335    pub forwarder_retry_queue_capacity_time_interval_sec: i64,
336
337    #[serde(default)]
338    #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
339    pub forwarder_retry_queue_max_size: i64,
340
341    #[serde(default = "defaults::default_u64::<i64, 15728640>")]
342    #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
343    pub forwarder_retry_queue_payloads_max_size: i64,
344
345    #[serde(default = "defaults::default_u64::<i64, 2>")]
346    #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
347    pub forwarder_stop_timeout: i64,
348
349    #[serde(default)]
350    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
351    pub forwarder_stop_wait_for_inflight: bool,
352
353    #[serde(
354        default = "defaults::datadog_configuration_forwarder_storage_max_disk_ratio"
355    )]
356    #[serde(deserialize_with = "crate::cast_de::deserialize_f64")]
357    pub forwarder_storage_max_disk_ratio: f64,
358
359    #[serde(default)]
360    #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
361    pub forwarder_storage_max_size_in_bytes: i64,
362
363    #[serde(default = "defaults::datadog_configuration_forwarder_storage_path")]
364    #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
365    pub forwarder_storage_path: String,
366
367    #[serde(default = "defaults::default_u64::<i64, 20>")]
368    #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
369    pub forwarder_timeout: i64,
370
371    #[serde(default = "defaults::datadog_configuration_histogram_aggregates")]
372    #[serde(deserialize_with = "crate::list_de::deserialize_space_separated_or_seq")]
373    pub histogram_aggregates: Vec<String>,
374
375    #[serde(default)]
376    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
377    pub histogram_copy_to_distribution: bool,
378
379    #[serde(default)]
380    #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
381    pub histogram_copy_to_distribution_prefix: String,
382
383    #[serde(default = "defaults::datadog_configuration_histogram_percentiles")]
384    #[serde(deserialize_with = "crate::list_de::deserialize_space_separated_or_seq")]
385    pub histogram_percentiles: Vec<String>,
386
387    #[serde(default)]
388    #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
389    pub hostname: String,
390
391    #[serde(default)]
392    #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
393    pub ipc_cert_file_path: String,
394
395    #[serde(default)]
396    #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
397    pub kubernetes_kubelet_nodename: String,
398
399    #[serde(default = "defaults::default_u64::<i64, 1>")]
400    #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
401    pub log_file_max_rolls: i64,
402
403    #[serde(default = "defaults::datadog_configuration_log_file_max_size")]
404    #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
405    pub log_file_max_size: String,
406
407    #[serde(default)]
408    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
409    pub log_format_json: bool,
410
411    #[serde(default)]
412    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
413    pub log_format_rfc3339: bool,
414
415    #[serde(default = "defaults::datadog_configuration_log_level")]
416    #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
417    pub log_level: String,
418
419    #[serde(default)]
420    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
421    pub log_payloads: bool,
422
423    #[serde(default = "defaults::default_bool::<true>")]
424    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
425    pub log_to_console: bool,
426
427    #[serde(default)]
428    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
429    pub log_to_syslog: bool,
430
431    #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")]
432    #[serde(deserialize_with = "crate::list_de::deserialize_space_separated_or_seq")]
433    pub metric_filterlist: Vec<String>,
434
435    #[serde(default)]
436    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
437    pub metric_filterlist_match_prefix: bool,
438
439    #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")]
440    #[serde(deserialize_with = "crate::list_de::deserialize_json_array_or_string")]
441    pub metric_filterlist_prefix: Vec<::serde_json::Map<String, ::serde_json::Value>>,
442
443    #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")]
444    #[serde(deserialize_with = "crate::list_de::deserialize_json_array_or_string")]
445    pub metric_tag_filterlist: Vec<::serde_json::Value>,
446
447    #[serde(default = "defaults::datadog_configuration_min_tls_version")]
448    #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
449    pub min_tls_version: String,
450
451    #[serde(default)]
452    pub multi_region_failover: MultiRegionFailover,
453
454    #[serde(default)]
455    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
456    pub no_proxy_nonexact_match: bool,
457
458    #[serde(default)]
459    pub observability_pipelines_worker: ObservabilityPipelinesWorker,
460
461    #[serde(default)]
462    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
463    pub origin_detection_unified: bool,
464
465    #[serde(default)]
466    pub otlp_config: OtlpConfig,
467
468    #[serde(default)]
469    #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
470    pub provider_kind: String,
471
472    #[serde(default)]
473    pub proxy: Proxy,
474
475    #[serde(default)]
476    pub remote_configuration: RemoteConfiguration,
477
478    #[serde(default = "defaults::datadog_configuration_run_path")]
479    #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
480    pub run_path: String,
481
482    #[serde(default)]
483    #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
484    pub secret_backend_command: String,
485
486    #[serde(default)]
487    #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
488    pub secret_refresh_on_api_key_failure_interval: i64,
489
490    #[serde(default = "defaults::datadog_configuration_serializer_compressor_kind")]
491    #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
492    pub serializer_compressor_kind: String,
493
494    #[serde(default)]
495    pub serializer_experimental_use_v3_api: SerializerExperimentalUseV3Api,
496
497    #[serde(default = "defaults::default_u64::<i64, 2621440>")]
498    #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
499    pub serializer_max_payload_size: i64,
500
501    #[serde(default = "defaults::default_u64::<i64, 512000>")]
502    #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
503    pub serializer_max_series_payload_size: i64,
504
505    #[serde(default = "defaults::default_u64::<i64, 10000>")]
506    #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
507    pub serializer_max_series_points_per_payload: i64,
508
509    #[serde(default = "defaults::default_u64::<i64, 5242880>")]
510    #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
511    pub serializer_max_series_uncompressed_payload_size: i64,
512
513    #[serde(default = "defaults::default_u64::<i64, 4194304>")]
514    #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
515    pub serializer_max_uncompressed_payload_size: i64,
516
517    #[serde(default = "defaults::default_u64::<i64, 1>")]
518    #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
519    pub serializer_zstd_compressor_level: i64,
520
521    #[serde(default = "defaults::datadog_configuration_site")]
522    #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
523    pub site: String,
524
525    #[serde(default)]
526    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
527    pub skip_ssl_validation: bool,
528
529    #[serde(default)]
530    #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
531    pub sslkeylogfile: String,
532
533    #[serde(default)]
534    #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
535    pub statsd_forward_host: String,
536
537    #[serde(default)]
538    #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
539    pub statsd_forward_port: i64,
540
541    #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")]
542    #[serde(deserialize_with = "crate::list_de::deserialize_space_separated_or_seq")]
543    pub statsd_metric_blocklist: Vec<String>,
544
545    #[serde(default)]
546    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
547    pub statsd_metric_blocklist_match_prefix: bool,
548
549    #[serde(default)]
550    #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
551    pub statsd_metric_namespace: String,
552
553    #[serde(
554        default = "defaults::datadog_configuration_statsd_metric_namespace_blacklist"
555    )]
556    /// Alias defined in schema overlay.
557    #[serde(alias = "statsd_metric_namespace_blocklist")]
558    #[serde(deserialize_with = "crate::list_de::deserialize_space_separated_or_seq")]
559    pub statsd_metric_namespace_blacklist: Vec<String>,
560
561    #[serde(default)]
562    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
563    pub syslog_rfc: bool,
564
565    #[serde(default)]
566    #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
567    pub syslog_uri: String,
568
569    #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")]
570    #[serde(deserialize_with = "crate::list_de::deserialize_space_separated_or_seq")]
571    pub tags: Vec<String>,
572
573    #[serde(default)]
574    pub telemetry: Telemetry,
575
576    #[serde(
577        default = "duration_defaults::tls_handshake_timeout",
578
579        deserialize_with = "crate::duration_de::deserialize_go_duration"
580    )]
581    pub tls_handshake_timeout: std::time::Duration,
582
583    #[serde(default)]
584    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
585    pub use_proxy_for_cloud_metadata: bool,
586
587    #[serde(default)]
588    pub use_v2_api: UseV2Api,
589
590    #[serde(default)]
591    pub use_v3_api: UseV3Api,
592
593    #[serde(default)]
594    pub vector: Vector,
595
596    #[serde(default)]
597    #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
598    pub vsock_addr: String,
599}
600
601impl Default for DatadogConfiguration {
602    fn default() -> Self {
603        Self {
604            additional_endpoints: Default::default(),
605            agent_ipc: Default::default(),
606            aggregator_stop_timeout: defaults::default_u64::<i64, 2>(),
607            allow_arbitrary_tags: Default::default(),
608            api_key: Default::default(),
609            apm_config: Default::default(),
610            auth_token_file_path: Default::default(),
611            autoscaling: Default::default(),
612            basic_telemetry_add_container_tags: Default::default(),
613            bind_host: Default::default(),
614            cluster_agent: Default::default(),
615            cluster_name: Default::default(),
616            cmd_port: defaults::default_u64::<i64, 5001>(),
617            container_cgroup_root: defaults::datadog_configuration_container_cgroup_root(),
618            container_proc_root: defaults::datadog_configuration_container_proc_root(),
619            cri_connection_timeout: defaults::default_u64::<i64, 1>(),
620            cri_query_timeout: defaults::default_u64::<i64, 5>(),
621            cri_socket_path: Default::default(),
622            data_plane: Default::default(),
623            dd_url: defaults::datadog_configuration_dd_url(),
624            disable_file_logging: Default::default(),
625            dogstatsd_buffer_size: defaults::default_u64::<i64, 8192>(),
626            dogstatsd_capture_depth: Default::default(),
627            dogstatsd_capture_path: Default::default(),
628            dogstatsd_context_expiry_seconds: defaults::default_u64::<i64, 20>(),
629            dogstatsd_disable_verbose_logs: Default::default(),
630            dogstatsd_entity_id_precedence: Default::default(),
631            dogstatsd_eol_required: Default::default(),
632            dogstatsd_expiry_seconds: defaults::default_u64::<i64, 300>(),
633            dogstatsd_flush_incomplete_buckets: Default::default(),
634            dogstatsd_log_file: defaults::datadog_configuration_dogstatsd_log_file(),
635            dogstatsd_log_file_max_rolls: defaults::default_u64::<i64, 3>(),
636            dogstatsd_log_file_max_size: defaults::datadog_configuration_dogstatsd_log_file_max_size(),
637            dogstatsd_logging_enabled: defaults::default_bool::<true>(),
638            dogstatsd_mapper_cache_size: defaults::default_u64::<i64, 1000>(),
639            dogstatsd_mapper_profiles: Default::default(),
640            dogstatsd_metrics_stats_enable: Default::default(),
641            dogstatsd_no_aggregation_pipeline: defaults::default_bool::<true>(),
642            dogstatsd_non_local_traffic: Default::default(),
643            dogstatsd_origin_detection: Default::default(),
644            dogstatsd_origin_detection_client: Default::default(),
645            dogstatsd_origin_optout_enabled: defaults::default_bool::<true>(),
646            dogstatsd_pipe_name: Default::default(),
647            dogstatsd_port: defaults::default_u64::<i64, 8125>(),
648            dogstatsd_require_listener: Default::default(),
649            dogstatsd_so_rcvbuf: Default::default(),
650            dogstatsd_socket: platform_defaults::dogstatsd_socket(),
651            dogstatsd_stream_log_too_big: Default::default(),
652            dogstatsd_stream_socket: Default::default(),
653            dogstatsd_string_interner_size: defaults::default_u64::<i64, 4096>(),
654            dogstatsd_tag_cardinality: defaults::datadog_configuration_dogstatsd_tag_cardinality(),
655            dogstatsd_tags: Default::default(),
656            dogstatsd_windows_pipe_security_descriptor: defaults::datadog_configuration_dogstatsd_windows_pipe_security_descriptor(),
657            dogstatsd_workers_count: Default::default(),
658            eks_fargate: Default::default(),
659            enable_payloads: Default::default(),
660            env: Default::default(),
661            expected_tags_duration: duration_defaults::expected_tags_duration(),
662            extra_tags: Default::default(),
663            forwarder_apikey_validation_interval: defaults::default_u64::<i64, 60>(),
664            forwarder_backoff_base: defaults::datadog_configuration_forwarder_backoff_base(),
665            forwarder_backoff_factor: defaults::datadog_configuration_forwarder_backoff_factor(),
666            forwarder_backoff_max: defaults::datadog_configuration_forwarder_backoff_max(),
667            forwarder_connection_reset_interval: Default::default(),
668            forwarder_flush_to_disk_mem_ratio: defaults::datadog_configuration_forwarder_flush_to_disk_mem_ratio(),
669            forwarder_high_prio_buffer_size: defaults::default_u64::<i64, 100>(),
670            forwarder_http_protocol: defaults::datadog_configuration_forwarder_http_protocol(),
671            forwarder_max_concurrent_requests: defaults::default_u64::<i64, 10>(),
672            forwarder_num_workers: defaults::default_u64::<i64, 1>(),
673            forwarder_outdated_file_in_days: defaults::default_u64::<i64, 10>(),
674            forwarder_recovery_interval: defaults::default_u64::<i64, 2>(),
675            forwarder_recovery_reset: Default::default(),
676            forwarder_retry_queue_capacity_time_interval_sec: defaults::default_u64::<
677                i64,
678                900,
679            >(),
680            forwarder_retry_queue_max_size: Default::default(),
681            forwarder_retry_queue_payloads_max_size: defaults::default_u64::<
682                i64,
683                15728640,
684            >(),
685            forwarder_stop_timeout: defaults::default_u64::<i64, 2>(),
686            forwarder_stop_wait_for_inflight: Default::default(),
687            forwarder_storage_max_disk_ratio: defaults::datadog_configuration_forwarder_storage_max_disk_ratio(),
688            forwarder_storage_max_size_in_bytes: Default::default(),
689            forwarder_storage_path: defaults::datadog_configuration_forwarder_storage_path(),
690            forwarder_timeout: defaults::default_u64::<i64, 20>(),
691            histogram_aggregates: defaults::datadog_configuration_histogram_aggregates(),
692            histogram_copy_to_distribution: Default::default(),
693            histogram_copy_to_distribution_prefix: Default::default(),
694            histogram_percentiles: defaults::datadog_configuration_histogram_percentiles(),
695            hostname: Default::default(),
696            ipc_cert_file_path: Default::default(),
697            kubernetes_kubelet_nodename: Default::default(),
698            log_file_max_rolls: defaults::default_u64::<i64, 1>(),
699            log_file_max_size: defaults::datadog_configuration_log_file_max_size(),
700            log_format_json: Default::default(),
701            log_format_rfc3339: Default::default(),
702            log_level: defaults::datadog_configuration_log_level(),
703            log_payloads: Default::default(),
704            log_to_console: defaults::default_bool::<true>(),
705            log_to_syslog: Default::default(),
706            metric_filterlist: Default::default(),
707            metric_filterlist_match_prefix: Default::default(),
708            metric_filterlist_prefix: Default::default(),
709            metric_tag_filterlist: Default::default(),
710            min_tls_version: defaults::datadog_configuration_min_tls_version(),
711            multi_region_failover: Default::default(),
712            no_proxy_nonexact_match: Default::default(),
713            observability_pipelines_worker: Default::default(),
714            origin_detection_unified: Default::default(),
715            otlp_config: Default::default(),
716            provider_kind: Default::default(),
717            proxy: Default::default(),
718            remote_configuration: Default::default(),
719            run_path: defaults::datadog_configuration_run_path(),
720            secret_backend_command: Default::default(),
721            secret_refresh_on_api_key_failure_interval: Default::default(),
722            serializer_compressor_kind: defaults::datadog_configuration_serializer_compressor_kind(),
723            serializer_experimental_use_v3_api: Default::default(),
724            serializer_max_payload_size: defaults::default_u64::<i64, 2621440>(),
725            serializer_max_series_payload_size: defaults::default_u64::<i64, 512000>(),
726            serializer_max_series_points_per_payload: defaults::default_u64::<
727                i64,
728                10000,
729            >(),
730            serializer_max_series_uncompressed_payload_size: defaults::default_u64::<
731                i64,
732                5242880,
733            >(),
734            serializer_max_uncompressed_payload_size: defaults::default_u64::<
735                i64,
736                4194304,
737            >(),
738            serializer_zstd_compressor_level: defaults::default_u64::<i64, 1>(),
739            site: defaults::datadog_configuration_site(),
740            skip_ssl_validation: Default::default(),
741            sslkeylogfile: Default::default(),
742            statsd_forward_host: Default::default(),
743            statsd_forward_port: Default::default(),
744            statsd_metric_blocklist: Default::default(),
745            statsd_metric_blocklist_match_prefix: Default::default(),
746            statsd_metric_namespace: Default::default(),
747            statsd_metric_namespace_blacklist: defaults::datadog_configuration_statsd_metric_namespace_blacklist(),
748            syslog_rfc: Default::default(),
749            syslog_uri: Default::default(),
750            tags: Default::default(),
751            telemetry: Default::default(),
752            tls_handshake_timeout: duration_defaults::tls_handshake_timeout(),
753            use_proxy_for_cloud_metadata: Default::default(),
754            use_v2_api: Default::default(),
755            use_v3_api: Default::default(),
756            vector: Default::default(),
757            vsock_addr: Default::default(),
758        }
759    }
760}
761
762#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
763pub struct AgentIpc {
764    #[serde(default = "defaults::default_u64::<i64, 134217728>")]
765    #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
766    pub grpc_max_message_size: i64,
767}
768
769impl Default for AgentIpc {
770    fn default() -> Self {
771        Self {
772            grpc_max_message_size: defaults::default_u64::<i64, 134217728>(),
773        }
774    }
775}
776
777#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
778pub struct ApmConfig {
779    #[serde(default, skip_serializing_if = ":: std :: collections :: HashMap::is_empty")]
780    #[serde(deserialize_with = "crate::cast_de::deserialize_number_map")]
781    pub analyzed_rate_by_service: HashMap<String, f64>,
782
783    #[serde(default, skip_serializing_if = "::serde_json::Map::is_empty")]
784    #[serde(deserialize_with = "crate::cast_de::deserialize_map_or_json_string")]
785    pub analyzed_spans: ::serde_json::Map<String, ::serde_json::Value>,
786
787    #[serde(default)]
788    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
789    pub apm_non_local_traffic: bool,
790
791    #[serde(default = "defaults::default_bool::<true>")]
792    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
793    pub compute_stats_by_span_kind: bool,
794
795    #[serde(default)]
796    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
797    pub enable_rare_sampler: bool,
798
799    #[serde(default)]
800    #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
801    pub env: String,
802
803    #[serde(default)]
804    pub error_tracking_standalone: ApmConfigErrorTrackingStandalone,
805
806    #[serde(default = "defaults::datadog_configuration_apm_config_errors_per_second")]
807    #[serde(deserialize_with = "crate::cast_de::deserialize_f64")]
808    pub errors_per_second: f64,
809
810    #[serde(default = "defaults::datadog_configuration_apm_config_extra_sample_rate")]
811    #[serde(deserialize_with = "crate::cast_de::deserialize_f64")]
812    pub extra_sample_rate: f64,
813
814    #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")]
815    #[serde(deserialize_with = "crate::list_de::deserialize_space_separated_or_seq")]
816    pub features: Vec<String>,
817
818    #[serde(default)]
819    #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
820    pub max_catalog_entries: i64,
821
822    #[serde(
823        default = "defaults::datadog_configuration_apm_config_max_events_per_second"
824    )]
825    #[serde(deserialize_with = "crate::cast_de::deserialize_f64")]
826    pub max_events_per_second: f64,
827
828    #[serde(
829        default = "defaults::datadog_configuration_apm_config_max_traces_per_second"
830    )]
831    #[serde(deserialize_with = "crate::cast_de::deserialize_f64")]
832    pub max_traces_per_second: f64,
833
834    #[serde(default)]
835    pub obfuscation: ApmConfigObfuscation,
836
837    #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")]
838    #[serde(deserialize_with = "crate::list_de::deserialize_space_separated_or_seq")]
839    pub peer_tags: Vec<String>,
840
841    #[serde(default = "defaults::default_bool::<true>")]
842    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
843    pub peer_tags_aggregation: bool,
844
845    #[serde(default)]
846    pub probabilistic_sampler: ApmConfigProbabilisticSampler,
847
848    #[serde(default = "defaults::default_u64::<i64, 8126>")]
849    #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
850    pub receiver_port: i64,
851
852    #[serde(default = "platform_defaults::apm_config_receiver_socket")]
853    #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
854    pub receiver_socket: String,
855
856    #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")]
857    #[serde(deserialize_with = "crate::list_de::deserialize_json_array_or_string")]
858    pub replace_tags: Vec<HashMap<String, String>>,
859
860    #[serde(
861        default = "defaults::datadog_configuration_apm_config_target_traces_per_second"
862    )]
863    #[serde(deserialize_with = "crate::cast_de::deserialize_f64")]
864    pub target_traces_per_second: f64,
865}
866
867impl Default for ApmConfig {
868    fn default() -> Self {
869        Self {
870            analyzed_rate_by_service: Default::default(),
871            analyzed_spans: Default::default(),
872            apm_non_local_traffic: Default::default(),
873            compute_stats_by_span_kind: defaults::default_bool::<true>(),
874            enable_rare_sampler: Default::default(),
875            env: Default::default(),
876            error_tracking_standalone: Default::default(),
877            errors_per_second: defaults::datadog_configuration_apm_config_errors_per_second(),
878            extra_sample_rate: defaults::datadog_configuration_apm_config_extra_sample_rate(),
879            features: Default::default(),
880            max_catalog_entries: Default::default(),
881            max_events_per_second: defaults::datadog_configuration_apm_config_max_events_per_second(),
882            max_traces_per_second: defaults::datadog_configuration_apm_config_max_traces_per_second(),
883            obfuscation: Default::default(),
884            peer_tags: Default::default(),
885            peer_tags_aggregation: defaults::default_bool::<true>(),
886            probabilistic_sampler: Default::default(),
887            receiver_port: defaults::default_u64::<i64, 8126>(),
888            receiver_socket: platform_defaults::apm_config_receiver_socket(),
889            replace_tags: Default::default(),
890            target_traces_per_second: defaults::datadog_configuration_apm_config_target_traces_per_second(),
891        }
892    }
893}
894
895#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
896pub struct ApmConfigErrorTrackingStandalone {
897    #[serde(default)]
898    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
899    pub enabled: bool,
900}
901
902impl Default for ApmConfigErrorTrackingStandalone {
903    fn default() -> Self {
904        Self {
905            enabled: Default::default(),
906        }
907    }
908}
909
910#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
911pub struct ApmConfigObfuscation {
912    #[serde(default)]
913    pub credit_cards: ApmConfigObfuscationCreditCards,
914
915    #[serde(default)]
916    pub elasticsearch: ApmConfigObfuscationElasticsearch,
917
918    #[serde(default)]
919    pub http: ApmConfigObfuscationHttp,
920
921    #[serde(default)]
922    pub memcached: ApmConfigObfuscationMemcached,
923
924    #[serde(default)]
925    pub mongodb: ApmConfigObfuscationMongodb,
926
927    #[serde(default)]
928    pub opensearch: ApmConfigObfuscationOpensearch,
929
930    #[serde(default)]
931    pub redis: ApmConfigObfuscationRedis,
932
933    #[serde(default)]
934    pub valkey: ApmConfigObfuscationValkey,
935}
936
937impl Default for ApmConfigObfuscation {
938    fn default() -> Self {
939        Self {
940            credit_cards: Default::default(),
941            elasticsearch: Default::default(),
942            http: Default::default(),
943            memcached: Default::default(),
944            mongodb: Default::default(),
945            opensearch: Default::default(),
946            redis: Default::default(),
947            valkey: Default::default(),
948        }
949    }
950}
951
952#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
953pub struct ApmConfigObfuscationCreditCards {
954    #[serde(default = "defaults::default_bool::<true>")]
955    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
956    pub enabled: bool,
957
958    #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")]
959    #[serde(deserialize_with = "crate::list_de::deserialize_space_separated_or_seq")]
960    pub keep_values: Vec<String>,
961
962    #[serde(default)]
963    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
964    pub luhn: bool,
965}
966
967impl Default for ApmConfigObfuscationCreditCards {
968    fn default() -> Self {
969        Self {
970            enabled: defaults::default_bool::<true>(),
971            keep_values: Default::default(),
972            luhn: Default::default(),
973        }
974    }
975}
976
977#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
978pub struct ApmConfigObfuscationElasticsearch {
979    #[serde(default = "defaults::default_bool::<true>")]
980    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
981    pub enabled: bool,
982
983    #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")]
984    #[serde(deserialize_with = "crate::list_de::deserialize_space_separated_or_seq")]
985    pub keep_values: Vec<String>,
986
987    #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")]
988    #[serde(deserialize_with = "crate::list_de::deserialize_space_separated_or_seq")]
989    pub obfuscate_sql_values: Vec<String>,
990}
991
992impl Default for ApmConfigObfuscationElasticsearch {
993    fn default() -> Self {
994        Self {
995            enabled: defaults::default_bool::<true>(),
996            keep_values: Default::default(),
997            obfuscate_sql_values: Default::default(),
998        }
999    }
1000}
1001
1002#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1003pub struct ApmConfigObfuscationHttp {
1004    #[serde(default)]
1005    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
1006    pub remove_paths_with_digits: bool,
1007
1008    #[serde(default)]
1009    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
1010    pub remove_query_string: bool,
1011}
1012
1013impl Default for ApmConfigObfuscationHttp {
1014    fn default() -> Self {
1015        Self {
1016            remove_paths_with_digits: Default::default(),
1017            remove_query_string: Default::default(),
1018        }
1019    }
1020}
1021
1022#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1023pub struct ApmConfigObfuscationMemcached {
1024    #[serde(default = "defaults::default_bool::<true>")]
1025    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
1026    pub enabled: bool,
1027
1028    #[serde(default)]
1029    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
1030    pub keep_command: bool,
1031}
1032
1033impl Default for ApmConfigObfuscationMemcached {
1034    fn default() -> Self {
1035        Self {
1036            enabled: defaults::default_bool::<true>(),
1037            keep_command: Default::default(),
1038        }
1039    }
1040}
1041
1042#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1043pub struct ApmConfigObfuscationMongodb {
1044    #[serde(default = "defaults::default_bool::<true>")]
1045    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
1046    pub enabled: bool,
1047
1048    #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")]
1049    #[serde(deserialize_with = "crate::list_de::deserialize_space_separated_or_seq")]
1050    pub keep_values: Vec<String>,
1051
1052    #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")]
1053    #[serde(deserialize_with = "crate::list_de::deserialize_space_separated_or_seq")]
1054    pub obfuscate_sql_values: Vec<String>,
1055}
1056
1057impl Default for ApmConfigObfuscationMongodb {
1058    fn default() -> Self {
1059        Self {
1060            enabled: defaults::default_bool::<true>(),
1061            keep_values: Default::default(),
1062            obfuscate_sql_values: Default::default(),
1063        }
1064    }
1065}
1066
1067#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1068pub struct ApmConfigObfuscationOpensearch {
1069    #[serde(default = "defaults::default_bool::<true>")]
1070    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
1071    pub enabled: bool,
1072
1073    #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")]
1074    #[serde(deserialize_with = "crate::list_de::deserialize_space_separated_or_seq")]
1075    pub keep_values: Vec<String>,
1076
1077    #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")]
1078    #[serde(deserialize_with = "crate::list_de::deserialize_space_separated_or_seq")]
1079    pub obfuscate_sql_values: Vec<String>,
1080}
1081
1082impl Default for ApmConfigObfuscationOpensearch {
1083    fn default() -> Self {
1084        Self {
1085            enabled: defaults::default_bool::<true>(),
1086            keep_values: Default::default(),
1087            obfuscate_sql_values: Default::default(),
1088        }
1089    }
1090}
1091
1092#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1093pub struct ApmConfigObfuscationRedis {
1094    #[serde(default = "defaults::default_bool::<true>")]
1095    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
1096    pub enabled: bool,
1097
1098    #[serde(default)]
1099    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
1100    pub remove_all_args: bool,
1101}
1102
1103impl Default for ApmConfigObfuscationRedis {
1104    fn default() -> Self {
1105        Self {
1106            enabled: defaults::default_bool::<true>(),
1107            remove_all_args: Default::default(),
1108        }
1109    }
1110}
1111
1112#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1113pub struct ApmConfigObfuscationValkey {
1114    #[serde(default = "defaults::default_bool::<true>")]
1115    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
1116    pub enabled: bool,
1117
1118    #[serde(default)]
1119    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
1120    pub remove_all_args: bool,
1121}
1122
1123impl Default for ApmConfigObfuscationValkey {
1124    fn default() -> Self {
1125        Self {
1126            enabled: defaults::default_bool::<true>(),
1127            remove_all_args: Default::default(),
1128        }
1129    }
1130}
1131
1132#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1133pub struct ApmConfigProbabilisticSampler {
1134    #[serde(default)]
1135    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
1136    pub enabled: bool,
1137
1138    #[serde(default)]
1139    #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
1140    pub hash_seed: i64,
1141
1142    #[serde(
1143        default = "defaults::datadog_configuration_apm_config_probabilistic_sampler_sampling_percentage"
1144    )]
1145    #[serde(deserialize_with = "crate::cast_de::deserialize_f64")]
1146    pub sampling_percentage: f64,
1147}
1148
1149impl Default for ApmConfigProbabilisticSampler {
1150    fn default() -> Self {
1151        Self {
1152            enabled: Default::default(),
1153            hash_seed: Default::default(),
1154            sampling_percentage: defaults::datadog_configuration_apm_config_probabilistic_sampler_sampling_percentage(),
1155        }
1156    }
1157}
1158
1159#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1160pub struct Autoscaling {
1161    #[serde(default)]
1162    pub failover: AutoscalingFailover,
1163}
1164
1165impl Default for Autoscaling {
1166    fn default() -> Self {
1167        Self {
1168            failover: Default::default(),
1169        }
1170    }
1171}
1172
1173#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1174pub struct AutoscalingFailover {
1175    #[serde(default)]
1176    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
1177    pub enabled: bool,
1178
1179    #[serde(default = "defaults::datadog_configuration_autoscaling_failover_metrics")]
1180    #[serde(deserialize_with = "crate::list_de::deserialize_space_separated_or_seq")]
1181    pub metrics: Vec<String>,
1182}
1183
1184impl Default for AutoscalingFailover {
1185    fn default() -> Self {
1186        Self {
1187            enabled: Default::default(),
1188            metrics: defaults::datadog_configuration_autoscaling_failover_metrics(),
1189        }
1190    }
1191}
1192
1193#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1194pub struct ClusterAgent {
1195    #[serde(default)]
1196    #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
1197    pub auth_token: String,
1198
1199    #[serde(default)]
1200    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
1201    pub enabled: bool,
1202
1203    #[serde(
1204        default = "defaults::datadog_configuration_cluster_agent_kubernetes_service_name"
1205    )]
1206    #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
1207    pub kubernetes_service_name: String,
1208
1209    #[serde(default)]
1210    #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
1211    pub url: String,
1212}
1213
1214impl Default for ClusterAgent {
1215    fn default() -> Self {
1216        Self {
1217            auth_token: Default::default(),
1218            enabled: Default::default(),
1219            kubernetes_service_name: defaults::datadog_configuration_cluster_agent_kubernetes_service_name(),
1220            url: Default::default(),
1221        }
1222    }
1223}
1224
1225#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1226pub struct DataPlane {
1227    #[serde(default = "defaults::datadog_configuration_data_plane_api_listen_address")]
1228    #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
1229    pub api_listen_address: String,
1230
1231    #[serde(default)]
1232    pub dogstatsd: DataPlaneDogstatsd,
1233
1234    #[serde(default)]
1235    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
1236    pub enabled: bool,
1237
1238    #[serde(default = "defaults::datadog_configuration_data_plane_log_file")]
1239    #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
1240    pub log_file: String,
1241
1242    #[serde(default)]
1243    pub otlp: DataPlaneOtlp,
1244
1245    #[serde(default = "defaults::default_bool::<true>")]
1246    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
1247    pub remote_agent_enabled: bool,
1248
1249    #[serde(
1250        default = "defaults::datadog_configuration_data_plane_secure_api_listen_address"
1251    )]
1252    #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
1253    pub secure_api_listen_address: String,
1254
1255    #[serde(default = "defaults::default_u64::<i64, 3>")]
1256    #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
1257    pub serializer_zstd_compressor_level: i64,
1258
1259    #[serde(default = "defaults::default_u64::<i64, 4>")]
1260    #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
1261    pub stop_timeout: i64,
1262
1263    #[serde(default = "defaults::default_bool::<true>")]
1264    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
1265    pub use_new_config_stream_endpoint: bool,
1266}
1267
1268impl Default for DataPlane {
1269    fn default() -> Self {
1270        Self {
1271            api_listen_address: defaults::datadog_configuration_data_plane_api_listen_address(),
1272            dogstatsd: Default::default(),
1273            enabled: Default::default(),
1274            log_file: defaults::datadog_configuration_data_plane_log_file(),
1275            otlp: Default::default(),
1276            remote_agent_enabled: defaults::default_bool::<true>(),
1277            secure_api_listen_address: defaults::datadog_configuration_data_plane_secure_api_listen_address(),
1278            serializer_zstd_compressor_level: defaults::default_u64::<i64, 3>(),
1279            stop_timeout: defaults::default_u64::<i64, 4>(),
1280            use_new_config_stream_endpoint: defaults::default_bool::<true>(),
1281        }
1282    }
1283}
1284
1285#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1286pub struct DataPlaneDogstatsd {
1287    #[serde(default = "defaults::default_u64::<i64, 100000>")]
1288    #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
1289    pub aggregator_tag_filter_cache_capacity: i64,
1290
1291    #[serde(default = "defaults::default_bool::<true>")]
1292    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
1293    pub enabled: bool,
1294}
1295
1296impl Default for DataPlaneDogstatsd {
1297    fn default() -> Self {
1298        Self {
1299            aggregator_tag_filter_cache_capacity: defaults::default_u64::<i64, 100000>(),
1300            enabled: defaults::default_bool::<true>(),
1301        }
1302    }
1303}
1304
1305#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1306pub struct DataPlaneOtlp {
1307    #[serde(default)]
1308    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
1309    pub enabled: bool,
1310
1311    #[serde(default)]
1312    pub proxy: DataPlaneOtlpProxy,
1313}
1314
1315impl Default for DataPlaneOtlp {
1316    fn default() -> Self {
1317        Self {
1318            enabled: Default::default(),
1319            proxy: Default::default(),
1320        }
1321    }
1322}
1323
1324#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1325pub struct DataPlaneOtlpProxy {
1326    #[serde(default)]
1327    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
1328    pub enabled: bool,
1329
1330    #[serde(default)]
1331    pub logs: DataPlaneOtlpProxyLogs,
1332
1333    #[serde(default)]
1334    pub metrics: DataPlaneOtlpProxyMetrics,
1335
1336    #[serde(default)]
1337    pub receiver: DataPlaneOtlpProxyReceiver,
1338
1339    #[serde(default)]
1340    pub traces: DataPlaneOtlpProxyTraces,
1341}
1342
1343impl Default for DataPlaneOtlpProxy {
1344    fn default() -> Self {
1345        Self {
1346            enabled: Default::default(),
1347            logs: Default::default(),
1348            metrics: Default::default(),
1349            receiver: Default::default(),
1350            traces: Default::default(),
1351        }
1352    }
1353}
1354
1355#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1356pub struct DataPlaneOtlpProxyLogs {
1357    #[serde(default = "defaults::default_bool::<true>")]
1358    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
1359    pub enabled: bool,
1360}
1361
1362impl Default for DataPlaneOtlpProxyLogs {
1363    fn default() -> Self {
1364        Self {
1365            enabled: defaults::default_bool::<true>(),
1366        }
1367    }
1368}
1369
1370#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1371pub struct DataPlaneOtlpProxyMetrics {
1372    #[serde(default = "defaults::default_bool::<true>")]
1373    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
1374    pub enabled: bool,
1375}
1376
1377impl Default for DataPlaneOtlpProxyMetrics {
1378    fn default() -> Self {
1379        Self {
1380            enabled: defaults::default_bool::<true>(),
1381        }
1382    }
1383}
1384
1385#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1386pub struct DataPlaneOtlpProxyReceiver {
1387    #[serde(default)]
1388    pub protocols: DataPlaneOtlpProxyReceiverProtocols,
1389}
1390
1391impl Default for DataPlaneOtlpProxyReceiver {
1392    fn default() -> Self {
1393        Self {
1394            protocols: Default::default(),
1395        }
1396    }
1397}
1398
1399#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1400pub struct DataPlaneOtlpProxyReceiverProtocols {
1401    #[serde(default)]
1402    pub grpc: DataPlaneOtlpProxyReceiverProtocolsGrpc,
1403}
1404
1405impl Default for DataPlaneOtlpProxyReceiverProtocols {
1406    fn default() -> Self {
1407        Self { grpc: Default::default() }
1408    }
1409}
1410
1411#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1412pub struct DataPlaneOtlpProxyReceiverProtocolsGrpc {
1413    #[serde(
1414        default = "defaults::datadog_configuration_data_plane_otlp_proxy_receiver_protocols_grpc_endpoint"
1415    )]
1416    #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
1417    pub endpoint: String,
1418}
1419
1420impl Default for DataPlaneOtlpProxyReceiverProtocolsGrpc {
1421    fn default() -> Self {
1422        Self {
1423            endpoint: defaults::datadog_configuration_data_plane_otlp_proxy_receiver_protocols_grpc_endpoint(),
1424        }
1425    }
1426}
1427
1428#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1429pub struct DataPlaneOtlpProxyTraces {
1430    #[serde(default = "defaults::default_bool::<true>")]
1431    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
1432    pub enabled: bool,
1433}
1434
1435impl Default for DataPlaneOtlpProxyTraces {
1436    fn default() -> Self {
1437        Self {
1438            enabled: defaults::default_bool::<true>(),
1439        }
1440    }
1441}
1442
1443#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1444pub struct EnablePayloads {
1445    #[serde(default = "defaults::default_bool::<true>")]
1446    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
1447    pub events: bool,
1448
1449    #[serde(default = "defaults::default_bool::<true>")]
1450    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
1451    pub series: bool,
1452
1453    #[serde(default = "defaults::default_bool::<true>")]
1454    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
1455    pub service_checks: bool,
1456
1457    #[serde(default = "defaults::default_bool::<true>")]
1458    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
1459    pub sketches: bool,
1460}
1461
1462impl Default for EnablePayloads {
1463    fn default() -> Self {
1464        Self {
1465            events: defaults::default_bool::<true>(),
1466            series: defaults::default_bool::<true>(),
1467            service_checks: defaults::default_bool::<true>(),
1468            sketches: defaults::default_bool::<true>(),
1469        }
1470    }
1471}
1472
1473#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1474pub struct MultiRegionFailover {
1475    #[serde(default)]
1476    #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
1477    pub api_key: String,
1478
1479    #[serde(default)]
1480    #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
1481    pub dd_url: String,
1482
1483    #[serde(default)]
1484    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
1485    pub enabled: bool,
1486
1487    #[serde(default)]
1488    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
1489    pub failover_metrics: bool,
1490
1491    #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")]
1492    #[serde(deserialize_with = "crate::list_de::deserialize_space_separated_or_seq")]
1493    pub metric_allowlist: Vec<String>,
1494
1495    #[serde(default)]
1496    #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
1497    pub site: String,
1498}
1499
1500impl Default for MultiRegionFailover {
1501    fn default() -> Self {
1502        Self {
1503            api_key: Default::default(),
1504            dd_url: Default::default(),
1505            enabled: Default::default(),
1506            failover_metrics: Default::default(),
1507            metric_allowlist: Default::default(),
1508            site: Default::default(),
1509        }
1510    }
1511}
1512
1513#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1514pub struct ObservabilityPipelinesWorker {
1515    #[serde(default)]
1516    pub metrics: ObservabilityPipelinesWorkerMetrics,
1517}
1518
1519impl Default for ObservabilityPipelinesWorker {
1520    fn default() -> Self {
1521        Self {
1522            metrics: Default::default(),
1523        }
1524    }
1525}
1526
1527#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1528pub struct ObservabilityPipelinesWorkerMetrics {
1529    #[serde(default)]
1530    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
1531    pub enabled: bool,
1532
1533    #[serde(default)]
1534    #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
1535    pub url: String,
1536
1537    #[serde(default)]
1538    pub use_v3_api: ObservabilityPipelinesWorkerMetricsUseV3Api,
1539}
1540
1541impl Default for ObservabilityPipelinesWorkerMetrics {
1542    fn default() -> Self {
1543        Self {
1544            enabled: Default::default(),
1545            url: Default::default(),
1546            use_v3_api: Default::default(),
1547        }
1548    }
1549}
1550
1551#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1552pub struct ObservabilityPipelinesWorkerMetricsUseV3Api {
1553    #[serde(default)]
1554    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
1555    pub series: bool,
1556}
1557
1558impl Default for ObservabilityPipelinesWorkerMetricsUseV3Api {
1559    fn default() -> Self {
1560        Self { series: Default::default() }
1561    }
1562}
1563
1564#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1565pub struct OtlpConfig {
1566    #[serde(default)]
1567    pub logs: OtlpConfigLogs,
1568
1569    #[serde(default)]
1570    pub metrics: OtlpConfigMetrics,
1571
1572    #[serde(default)]
1573    pub receiver: OtlpConfigReceiver,
1574
1575    #[serde(default)]
1576    pub traces: OtlpConfigTraces,
1577}
1578
1579impl Default for OtlpConfig {
1580    fn default() -> Self {
1581        Self {
1582            logs: Default::default(),
1583            metrics: Default::default(),
1584            receiver: Default::default(),
1585            traces: Default::default(),
1586        }
1587    }
1588}
1589
1590#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1591pub struct OtlpConfigLogs {
1592    #[serde(default)]
1593    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
1594    pub enabled: bool,
1595}
1596
1597impl Default for OtlpConfigLogs {
1598    fn default() -> Self {
1599        Self {
1600            enabled: Default::default(),
1601        }
1602    }
1603}
1604
1605#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1606pub struct OtlpConfigMetrics {
1607    #[serde(default = "defaults::default_u64::<i64, 3600>")]
1608    #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
1609    pub delta_ttl: i64,
1610
1611    #[serde(default = "defaults::default_bool::<true>")]
1612    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
1613    pub enabled: bool,
1614
1615    #[serde(default)]
1616    pub histograms: OtlpConfigMetricsHistograms,
1617
1618    #[serde(default = "defaults::default_bool::<true>")]
1619    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
1620    pub instrumentation_scope_metadata_as_tags: bool,
1621
1622    #[serde(default)]
1623    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
1624    pub resource_attributes_as_tags: bool,
1625
1626    #[serde(default)]
1627    pub summaries: OtlpConfigMetricsSummaries,
1628
1629    #[serde(default)]
1630    pub sums: OtlpConfigMetricsSums,
1631
1632    #[serde(
1633        default = "defaults::datadog_configuration_otlp_config_metrics_tag_cardinality"
1634    )]
1635    #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
1636    pub tag_cardinality: String,
1637
1638    #[serde(default)]
1639    #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
1640    pub tags: String,
1641}
1642
1643impl Default for OtlpConfigMetrics {
1644    fn default() -> Self {
1645        Self {
1646            delta_ttl: defaults::default_u64::<i64, 3600>(),
1647            enabled: defaults::default_bool::<true>(),
1648            histograms: Default::default(),
1649            instrumentation_scope_metadata_as_tags: defaults::default_bool::<true>(),
1650            resource_attributes_as_tags: Default::default(),
1651            summaries: Default::default(),
1652            sums: Default::default(),
1653            tag_cardinality: defaults::datadog_configuration_otlp_config_metrics_tag_cardinality(),
1654            tags: Default::default(),
1655        }
1656    }
1657}
1658
1659#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1660pub struct OtlpConfigMetricsHistograms {
1661    #[serde(
1662        default = "defaults::datadog_configuration_otlp_config_metrics_histograms_mode"
1663    )]
1664    #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
1665    pub mode: String,
1666
1667    #[serde(default)]
1668    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
1669    pub send_aggregation_metrics: bool,
1670}
1671
1672impl Default for OtlpConfigMetricsHistograms {
1673    fn default() -> Self {
1674        Self {
1675            mode: defaults::datadog_configuration_otlp_config_metrics_histograms_mode(),
1676            send_aggregation_metrics: Default::default(),
1677        }
1678    }
1679}
1680
1681#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1682pub struct OtlpConfigMetricsSummaries {
1683    #[serde(
1684        default = "defaults::datadog_configuration_otlp_config_metrics_summaries_mode"
1685    )]
1686    #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
1687    pub mode: String,
1688}
1689
1690impl Default for OtlpConfigMetricsSummaries {
1691    fn default() -> Self {
1692        Self {
1693            mode: defaults::datadog_configuration_otlp_config_metrics_summaries_mode(),
1694        }
1695    }
1696}
1697
1698#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1699pub struct OtlpConfigMetricsSums {
1700    #[serde(
1701        default = "defaults::datadog_configuration_otlp_config_metrics_sums_cumulative_monotonic_mode"
1702    )]
1703    #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
1704    pub cumulative_monotonic_mode: String,
1705
1706    #[serde(
1707        default = "defaults::datadog_configuration_otlp_config_metrics_sums_initial_cumulative_monotonic_value"
1708    )]
1709    #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
1710    pub initial_cumulative_monotonic_value: String,
1711}
1712
1713impl Default for OtlpConfigMetricsSums {
1714    fn default() -> Self {
1715        Self {
1716            cumulative_monotonic_mode: defaults::datadog_configuration_otlp_config_metrics_sums_cumulative_monotonic_mode(),
1717            initial_cumulative_monotonic_value: defaults::datadog_configuration_otlp_config_metrics_sums_initial_cumulative_monotonic_value(),
1718        }
1719    }
1720}
1721
1722#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1723pub struct OtlpConfigReceiver {
1724    #[serde(default)]
1725    pub protocols: OtlpConfigReceiverProtocols,
1726}
1727
1728impl Default for OtlpConfigReceiver {
1729    fn default() -> Self {
1730        Self {
1731            protocols: Default::default(),
1732        }
1733    }
1734}
1735
1736#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1737pub struct OtlpConfigReceiverProtocols {
1738    #[serde(default)]
1739    pub grpc: OtlpConfigReceiverProtocolsGrpc,
1740
1741    #[serde(default)]
1742    pub http: OtlpConfigReceiverProtocolsHttp,
1743}
1744
1745impl Default for OtlpConfigReceiverProtocols {
1746    fn default() -> Self {
1747        Self {
1748            grpc: Default::default(),
1749            http: Default::default(),
1750        }
1751    }
1752}
1753
1754#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1755pub struct OtlpConfigReceiverProtocolsGrpc {
1756    #[serde(
1757        default = "defaults::datadog_configuration_otlp_config_receiver_protocols_grpc_endpoint"
1758    )]
1759    #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
1760    pub endpoint: String,
1761
1762    #[serde(default)]
1763    pub keepalive: OtlpConfigReceiverProtocolsGrpcKeepalive,
1764
1765    #[serde(default)]
1766    #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
1767    pub max_concurrent_streams: i64,
1768
1769    #[serde(default)]
1770    #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
1771    pub max_recv_msg_size_mib: i64,
1772
1773    #[serde(default)]
1774    pub tls: OtlpConfigReceiverProtocolsGrpcTls,
1775
1776    #[serde(
1777        default = "defaults::datadog_configuration_otlp_config_receiver_protocols_grpc_transport"
1778    )]
1779    #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
1780    pub transport: String,
1781}
1782
1783impl Default for OtlpConfigReceiverProtocolsGrpc {
1784    fn default() -> Self {
1785        Self {
1786            endpoint: defaults::datadog_configuration_otlp_config_receiver_protocols_grpc_endpoint(),
1787            keepalive: Default::default(),
1788            max_concurrent_streams: Default::default(),
1789            max_recv_msg_size_mib: Default::default(),
1790            tls: Default::default(),
1791            transport: defaults::datadog_configuration_otlp_config_receiver_protocols_grpc_transport(),
1792        }
1793    }
1794}
1795
1796#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1797pub struct OtlpConfigReceiverProtocolsGrpcKeepalive {
1798    #[serde(default)]
1799    pub server_parameters: OtlpConfigReceiverProtocolsGrpcKeepaliveServerParameters,
1800}
1801
1802impl Default for OtlpConfigReceiverProtocolsGrpcKeepalive {
1803    fn default() -> Self {
1804        Self {
1805            server_parameters: Default::default(),
1806        }
1807    }
1808}
1809
1810#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1811pub struct OtlpConfigReceiverProtocolsGrpcKeepaliveServerParameters {
1812    #[serde(
1813        default = "duration_defaults::otlp_config_receiver_protocols_grpc_keepalive_server_parameters_max_connection_age",
1814
1815        deserialize_with = "crate::duration_de::deserialize_go_duration"
1816    )]
1817    pub max_connection_age: std::time::Duration,
1818
1819    #[serde(
1820        default = "duration_defaults::otlp_config_receiver_protocols_grpc_keepalive_server_parameters_max_connection_age_grace",
1821
1822        deserialize_with = "crate::duration_de::deserialize_go_duration"
1823    )]
1824    pub max_connection_age_grace: std::time::Duration,
1825
1826    #[serde(
1827        default = "duration_defaults::otlp_config_receiver_protocols_grpc_keepalive_server_parameters_time",
1828
1829        deserialize_with = "crate::duration_de::deserialize_go_duration"
1830    )]
1831    pub time: std::time::Duration,
1832
1833    #[serde(
1834        default = "duration_defaults::otlp_config_receiver_protocols_grpc_keepalive_server_parameters_timeout",
1835
1836        deserialize_with = "crate::duration_de::deserialize_go_duration"
1837    )]
1838    pub timeout: std::time::Duration,
1839}
1840
1841impl Default for OtlpConfigReceiverProtocolsGrpcKeepaliveServerParameters {
1842    fn default() -> Self {
1843        Self {
1844            max_connection_age: duration_defaults::otlp_config_receiver_protocols_grpc_keepalive_server_parameters_max_connection_age(),
1845            max_connection_age_grace: duration_defaults::otlp_config_receiver_protocols_grpc_keepalive_server_parameters_max_connection_age_grace(),
1846            time: duration_defaults::otlp_config_receiver_protocols_grpc_keepalive_server_parameters_time(),
1847            timeout: duration_defaults::otlp_config_receiver_protocols_grpc_keepalive_server_parameters_timeout(),
1848        }
1849    }
1850}
1851
1852#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1853pub struct OtlpConfigReceiverProtocolsGrpcTls {
1854    #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
1855    #[serde(deserialize_with = "crate::cast_de::deserialize_optional_string")]
1856    pub ca_file: Option<String>,
1857
1858    #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
1859    #[serde(deserialize_with = "crate::cast_de::deserialize_optional_string")]
1860    pub cert_file: Option<String>,
1861
1862    #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
1863    #[serde(deserialize_with = "crate::cast_de::deserialize_optional_string")]
1864    pub key_file: Option<String>,
1865}
1866
1867impl Default for OtlpConfigReceiverProtocolsGrpcTls {
1868    fn default() -> Self {
1869        Self {
1870            ca_file: Default::default(),
1871            cert_file: Default::default(),
1872            key_file: Default::default(),
1873        }
1874    }
1875}
1876
1877#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1878pub struct OtlpConfigReceiverProtocolsHttp {
1879    #[serde(default)]
1880    pub cors: OtlpConfigReceiverProtocolsHttpCors,
1881
1882    #[serde(
1883        default = "defaults::datadog_configuration_otlp_config_receiver_protocols_http_endpoint"
1884    )]
1885    #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
1886    pub endpoint: String,
1887
1888    #[serde(default)]
1889    #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
1890    pub max_request_body_size: i64,
1891
1892    #[serde(default)]
1893    pub tls: OtlpConfigReceiverProtocolsHttpTls,
1894}
1895
1896impl Default for OtlpConfigReceiverProtocolsHttp {
1897    fn default() -> Self {
1898        Self {
1899            cors: Default::default(),
1900            endpoint: defaults::datadog_configuration_otlp_config_receiver_protocols_http_endpoint(),
1901            max_request_body_size: Default::default(),
1902            tls: Default::default(),
1903        }
1904    }
1905}
1906
1907#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1908pub struct OtlpConfigReceiverProtocolsHttpCors {
1909    #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")]
1910    #[serde(deserialize_with = "crate::list_de::deserialize_space_separated_or_seq")]
1911    pub allowed_headers: Vec<String>,
1912
1913    #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")]
1914    #[serde(deserialize_with = "crate::list_de::deserialize_space_separated_or_seq")]
1915    pub allowed_origins: Vec<String>,
1916
1917    #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")]
1918    #[serde(deserialize_with = "crate::list_de::deserialize_space_separated_or_seq")]
1919    pub exposed_headers: Vec<String>,
1920
1921    #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
1922    #[serde(deserialize_with = "crate::cast_de::deserialize_optional_i64")]
1923    pub max_age: Option<i64>,
1924}
1925
1926impl Default for OtlpConfigReceiverProtocolsHttpCors {
1927    fn default() -> Self {
1928        Self {
1929            allowed_headers: Default::default(),
1930            allowed_origins: Default::default(),
1931            exposed_headers: Default::default(),
1932            max_age: Default::default(),
1933        }
1934    }
1935}
1936
1937#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1938pub struct OtlpConfigReceiverProtocolsHttpTls {
1939    #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
1940    #[serde(deserialize_with = "crate::cast_de::deserialize_optional_string")]
1941    pub ca_file: Option<String>,
1942
1943    #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
1944    #[serde(deserialize_with = "crate::cast_de::deserialize_optional_string")]
1945    pub cert_file: Option<String>,
1946
1947    #[serde(default, skip_serializing_if = "::std::option::Option::is_none")]
1948    #[serde(deserialize_with = "crate::cast_de::deserialize_optional_string")]
1949    pub key_file: Option<String>,
1950}
1951
1952impl Default for OtlpConfigReceiverProtocolsHttpTls {
1953    fn default() -> Self {
1954        Self {
1955            ca_file: Default::default(),
1956            cert_file: Default::default(),
1957            key_file: Default::default(),
1958        }
1959    }
1960}
1961
1962#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1963pub struct OtlpConfigTraces {
1964    #[serde(default = "defaults::default_bool::<true>")]
1965    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
1966    pub enabled: bool,
1967
1968    #[serde(default = "defaults::default_u64::<i64, 5003>")]
1969    #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
1970    pub internal_port: i64,
1971
1972    #[serde(default)]
1973    pub probabilistic_sampler: OtlpConfigTracesProbabilisticSampler,
1974}
1975
1976impl Default for OtlpConfigTraces {
1977    fn default() -> Self {
1978        Self {
1979            enabled: defaults::default_bool::<true>(),
1980            internal_port: defaults::default_u64::<i64, 5003>(),
1981            probabilistic_sampler: Default::default(),
1982        }
1983    }
1984}
1985
1986#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
1987pub struct OtlpConfigTracesProbabilisticSampler {
1988    #[serde(
1989        default = "defaults::datadog_configuration_otlp_config_traces_probabilistic_sampler_sampling_percentage"
1990    )]
1991    #[serde(deserialize_with = "crate::cast_de::deserialize_f64")]
1992    pub sampling_percentage: f64,
1993}
1994
1995impl Default for OtlpConfigTracesProbabilisticSampler {
1996    fn default() -> Self {
1997        Self {
1998            sampling_percentage: defaults::datadog_configuration_otlp_config_traces_probabilistic_sampler_sampling_percentage(),
1999        }
2000    }
2001}
2002
2003#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
2004pub struct Proxy {
2005    #[serde(default)]
2006    #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
2007    pub http: String,
2008
2009    #[serde(default)]
2010    #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
2011    pub https: String,
2012
2013    #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")]
2014    #[serde(deserialize_with = "crate::list_de::deserialize_space_separated_or_seq")]
2015    pub no_proxy: Vec<String>,
2016}
2017
2018impl Default for Proxy {
2019    fn default() -> Self {
2020        Self {
2021            http: Default::default(),
2022            https: Default::default(),
2023            no_proxy: Default::default(),
2024        }
2025    }
2026}
2027
2028#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
2029pub struct RemoteConfiguration {
2030    #[serde(default)]
2031    pub apm_sampling: RemoteConfigurationApmSampling,
2032
2033    #[serde(default)]
2034    pub apm_semantics: RemoteConfigurationApmSemantics,
2035
2036    #[serde(default = "defaults::default_bool::<true>")]
2037    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
2038    pub enabled: bool,
2039}
2040
2041impl Default for RemoteConfiguration {
2042    fn default() -> Self {
2043        Self {
2044            apm_sampling: Default::default(),
2045            apm_semantics: Default::default(),
2046            enabled: defaults::default_bool::<true>(),
2047        }
2048    }
2049}
2050
2051#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
2052pub struct RemoteConfigurationApmSampling {
2053    #[serde(default = "defaults::default_bool::<true>")]
2054    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
2055    pub enabled: bool,
2056}
2057
2058impl Default for RemoteConfigurationApmSampling {
2059    fn default() -> Self {
2060        Self {
2061            enabled: defaults::default_bool::<true>(),
2062        }
2063    }
2064}
2065
2066#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
2067pub struct RemoteConfigurationApmSemantics {
2068    #[serde(default)]
2069    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
2070    pub enabled: bool,
2071}
2072
2073impl Default for RemoteConfigurationApmSemantics {
2074    fn default() -> Self {
2075        Self {
2076            enabled: Default::default(),
2077        }
2078    }
2079}
2080
2081#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
2082pub struct SerializerExperimentalUseV3Api {
2083    #[serde(default)]
2084    #[serde(deserialize_with = "crate::cast_de::deserialize_i64")]
2085    pub compression_level: i64,
2086
2087    #[serde(default)]
2088    pub sketches: SerializerExperimentalUseV3ApiSketches,
2089}
2090
2091impl Default for SerializerExperimentalUseV3Api {
2092    fn default() -> Self {
2093        Self {
2094            compression_level: Default::default(),
2095            sketches: Default::default(),
2096        }
2097    }
2098}
2099
2100#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
2101pub struct SerializerExperimentalUseV3ApiSketches {
2102    #[serde(default, skip_serializing_if = "::std::vec::Vec::is_empty")]
2103    #[serde(deserialize_with = "crate::list_de::deserialize_space_separated_or_seq")]
2104    pub endpoints: Vec<String>,
2105}
2106
2107impl Default for SerializerExperimentalUseV3ApiSketches {
2108    fn default() -> Self {
2109        Self {
2110            endpoints: Default::default(),
2111        }
2112    }
2113}
2114
2115#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
2116pub struct Telemetry {
2117    #[serde(default)]
2118    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
2119    pub dogstatsd_origin: bool,
2120}
2121
2122impl Default for Telemetry {
2123    fn default() -> Self {
2124        Self {
2125            dogstatsd_origin: Default::default(),
2126        }
2127    }
2128}
2129
2130#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
2131pub struct UseV2Api {
2132    #[serde(default = "defaults::default_bool::<true>")]
2133    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
2134    pub series: bool,
2135}
2136
2137impl Default for UseV2Api {
2138    fn default() -> Self {
2139        Self {
2140            series: defaults::default_bool::<true>(),
2141        }
2142    }
2143}
2144
2145#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
2146pub struct UseV3Api {
2147    #[serde(default)]
2148    pub series: UseV3ApiSeries,
2149}
2150
2151impl Default for UseV3Api {
2152    fn default() -> Self {
2153        Self { series: Default::default() }
2154    }
2155}
2156
2157#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
2158pub struct UseV3ApiSeries {
2159    #[serde(default = "defaults::datadog_configuration_use_v3_api_series_enabled")]
2160    #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
2161    pub enabled: String,
2162
2163    #[serde(default, skip_serializing_if = ":: std :: collections :: HashMap::is_empty")]
2164    #[serde(deserialize_with = "crate::cast_de::deserialize_string_map")]
2165    pub endpoints: HashMap<String, String>,
2166}
2167
2168impl Default for UseV3ApiSeries {
2169    fn default() -> Self {
2170        Self {
2171            enabled: defaults::datadog_configuration_use_v3_api_series_enabled(),
2172            endpoints: Default::default(),
2173        }
2174    }
2175}
2176
2177#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
2178pub struct Vector {
2179    #[serde(default)]
2180    pub metrics: VectorMetrics,
2181}
2182
2183impl Default for Vector {
2184    fn default() -> Self {
2185        Self {
2186            metrics: Default::default(),
2187        }
2188    }
2189}
2190
2191#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
2192pub struct VectorMetrics {
2193    #[serde(default)]
2194    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
2195    pub enabled: bool,
2196
2197    #[serde(default)]
2198    #[serde(deserialize_with = "crate::cast_de::deserialize_string")]
2199    pub url: String,
2200
2201    #[serde(default)]
2202    pub use_v3_api: VectorMetricsUseV3Api,
2203}
2204
2205impl Default for VectorMetrics {
2206    fn default() -> Self {
2207        Self {
2208            enabled: Default::default(),
2209            url: Default::default(),
2210            use_v3_api: Default::default(),
2211        }
2212    }
2213}
2214
2215#[derive(::serde::Deserialize, ::serde::Serialize, Clone, Debug)]
2216pub struct VectorMetricsUseV3Api {
2217    #[serde(default)]
2218    #[serde(deserialize_with = "crate::cast_de::deserialize_bool")]
2219    pub series: bool,
2220}
2221
2222impl Default for VectorMetricsUseV3Api {
2223    fn default() -> Self {
2224        Self { series: Default::default() }
2225    }
2226}
2227
2228/// Generation of default values for serde.
2229pub mod defaults {
2230    pub(super) fn default_bool<const V: bool>() -> bool {
2231        V
2232    }
2233    pub(super) fn default_i64<T, const V: i64>() -> T
2234    where
2235        T: TryFrom<i64>,
2236        <T as ::std::convert::TryFrom<i64>>::Error: ::std::fmt::Debug,
2237    {
2238        T::try_from(V).unwrap()
2239    }
2240    pub(super) fn default_u64<T, const V: u64>() -> T
2241    where
2242        T: TryFrom<u64>,
2243        <T as ::std::convert::TryFrom<u64>>::Error: ::std::fmt::Debug,
2244    {
2245        T::try_from(V).unwrap()
2246    }
2247    pub(super) fn datadog_configuration_container_cgroup_root() -> String {
2248        "/host/sys/fs/cgroup/".to_string()
2249    }
2250    pub(super) fn datadog_configuration_container_proc_root() -> String {
2251        "/host/proc".to_string()
2252    }
2253    pub(super) fn datadog_configuration_dd_url() -> String {
2254        "https://app.datadoghq.com".to_string()
2255    }
2256    pub(super) fn datadog_configuration_dogstatsd_log_file() -> String {
2257        "${log_path}/dogstatsd_info/dogstatsd-stats.log".to_string()
2258    }
2259    pub(super) fn datadog_configuration_dogstatsd_log_file_max_size() -> String {
2260        "10Mb".to_string()
2261    }
2262    pub(super) fn datadog_configuration_dogstatsd_tag_cardinality() -> String {
2263        "low".to_string()
2264    }
2265    pub(super) fn datadog_configuration_dogstatsd_windows_pipe_security_descriptor() -> String {
2266        "D:AI(A;;GA;;;WD)".to_string()
2267    }
2268    pub(super) fn datadog_configuration_forwarder_backoff_base() -> f64 {
2269        2_f64
2270    }
2271    pub(super) fn datadog_configuration_forwarder_backoff_factor() -> f64 {
2272        2_f64
2273    }
2274    pub(super) fn datadog_configuration_forwarder_backoff_max() -> f64 {
2275        64_f64
2276    }
2277    pub(super) fn datadog_configuration_forwarder_flush_to_disk_mem_ratio() -> f64 {
2278        0.5_f64
2279    }
2280    pub(super) fn datadog_configuration_forwarder_http_protocol() -> String {
2281        "auto".to_string()
2282    }
2283    pub(super) fn datadog_configuration_forwarder_storage_max_disk_ratio() -> f64 {
2284        0.8_f64
2285    }
2286    pub(super) fn datadog_configuration_forwarder_storage_path() -> String {
2287        "${run_path}/transactions_to_retry".to_string()
2288    }
2289    pub(super) fn datadog_configuration_histogram_aggregates() -> Vec<String> {
2290        vec![
2291            "max".to_string(),
2292            "median".to_string(),
2293            "avg".to_string(),
2294            "count".to_string(),
2295        ]
2296    }
2297    pub(super) fn datadog_configuration_histogram_percentiles() -> Vec<String> {
2298        vec!["0.95".to_string()]
2299    }
2300    pub(super) fn datadog_configuration_log_file_max_size() -> String {
2301        "10Mb".to_string()
2302    }
2303    pub(super) fn datadog_configuration_log_level() -> String {
2304        "info".to_string()
2305    }
2306    pub(super) fn datadog_configuration_min_tls_version() -> String {
2307        "tlsv1.2".to_string()
2308    }
2309    pub(super) fn datadog_configuration_run_path() -> String {
2310        "${run_path}".to_string()
2311    }
2312    pub(super) fn datadog_configuration_serializer_compressor_kind() -> String {
2313        "zstd".to_string()
2314    }
2315    pub(super) fn datadog_configuration_site() -> String {
2316        "datadoghq.com".to_string()
2317    }
2318    pub(super) fn datadog_configuration_statsd_metric_namespace_blacklist() -> Vec<
2319        String,
2320    > {
2321        vec![
2322            "datadog.agent".to_string(),
2323            "datadog.dogstatsd".to_string(),
2324            "datadog.process".to_string(),
2325            "datadog.trace_agent".to_string(),
2326            "datadog.tracer".to_string(),
2327            "activemq".to_string(),
2328            "activemq_58".to_string(),
2329            "airflow".to_string(),
2330            "cassandra".to_string(),
2331            "confluent".to_string(),
2332            "hazelcast".to_string(),
2333            "hive".to_string(),
2334            "ignite".to_string(),
2335            "jboss".to_string(),
2336            "jvm".to_string(),
2337            "kafka".to_string(),
2338            "presto".to_string(),
2339            "sidekiq".to_string(),
2340            "solr".to_string(),
2341            "tomcat".to_string(),
2342            "runtime".to_string(),
2343        ]
2344    }
2345    pub(super) fn datadog_configuration_apm_config_errors_per_second() -> f64 {
2346        10_f64
2347    }
2348    pub(super) fn datadog_configuration_apm_config_extra_sample_rate() -> f64 {
2349        0_f64
2350    }
2351    pub(super) fn datadog_configuration_apm_config_max_events_per_second() -> f64 {
2352        200_f64
2353    }
2354    pub(super) fn datadog_configuration_apm_config_max_traces_per_second() -> f64 {
2355        10_f64
2356    }
2357    pub(super) fn datadog_configuration_apm_config_target_traces_per_second() -> f64 {
2358        10_f64
2359    }
2360    pub(super) fn datadog_configuration_apm_config_probabilistic_sampler_sampling_percentage() -> f64 {
2361        0_f64
2362    }
2363    pub(super) fn datadog_configuration_autoscaling_failover_metrics() -> Vec<String> {
2364        vec!["container.memory.usage".to_string(), "container.cpu.usage".to_string()]
2365    }
2366    pub(super) fn datadog_configuration_cluster_agent_kubernetes_service_name() -> String {
2367        "datadog-cluster-agent".to_string()
2368    }
2369    pub(super) fn datadog_configuration_data_plane_api_listen_address() -> String {
2370        "tcp://0.0.0.0:5100".to_string()
2371    }
2372    pub(super) fn datadog_configuration_data_plane_log_file() -> String {
2373        "${log_path}/agent-data-plane.log".to_string()
2374    }
2375    pub(super) fn datadog_configuration_data_plane_secure_api_listen_address() -> String {
2376        "tcp://0.0.0.0:5101".to_string()
2377    }
2378    pub(super) fn datadog_configuration_data_plane_otlp_proxy_receiver_protocols_grpc_endpoint() -> String {
2379        "127.0.0.1:4319".to_string()
2380    }
2381    pub(super) fn datadog_configuration_otlp_config_metrics_tag_cardinality() -> String {
2382        "low".to_string()
2383    }
2384    pub(super) fn datadog_configuration_otlp_config_metrics_histograms_mode() -> String {
2385        "distributions".to_string()
2386    }
2387    pub(super) fn datadog_configuration_otlp_config_metrics_summaries_mode() -> String {
2388        "gauges".to_string()
2389    }
2390    pub(super) fn datadog_configuration_otlp_config_metrics_sums_cumulative_monotonic_mode() -> String {
2391        "to_delta".to_string()
2392    }
2393    pub(super) fn datadog_configuration_otlp_config_metrics_sums_initial_cumulative_monotonic_value() -> String {
2394        "auto".to_string()
2395    }
2396    pub(super) fn datadog_configuration_otlp_config_receiver_protocols_grpc_endpoint() -> String {
2397        "localhost:4317".to_string()
2398    }
2399    pub(super) fn datadog_configuration_otlp_config_receiver_protocols_grpc_transport() -> String {
2400        "tcp".to_string()
2401    }
2402    pub(super) fn datadog_configuration_otlp_config_receiver_protocols_http_endpoint() -> String {
2403        "localhost:4318".to_string()
2404    }
2405    pub(super) fn datadog_configuration_otlp_config_traces_probabilistic_sampler_sampling_percentage() -> f64 {
2406        100_f64
2407    }
2408    pub(super) fn datadog_configuration_use_v3_api_series_enabled() -> String {
2409        "datadog_only".to_string()
2410    }
2411}
2412
2413mod duration_defaults {
2414    pub(super) fn expected_tags_duration() -> std::time::Duration {
2415        std::time::Duration::from_nanos(0)
2416    }
2417    pub(super) fn otlp_config_receiver_protocols_grpc_keepalive_server_parameters_max_connection_age() -> std::time::Duration {
2418        std::time::Duration::from_nanos(0)
2419    }
2420    pub(super) fn otlp_config_receiver_protocols_grpc_keepalive_server_parameters_max_connection_age_grace() -> std::time::Duration {
2421        std::time::Duration::from_nanos(0)
2422    }
2423    pub(super) fn otlp_config_receiver_protocols_grpc_keepalive_server_parameters_time() -> std::time::Duration {
2424        std::time::Duration::from_nanos(0)
2425    }
2426    pub(super) fn otlp_config_receiver_protocols_grpc_keepalive_server_parameters_timeout() -> std::time::Duration {
2427        std::time::Duration::from_nanos(0)
2428    }
2429    pub(super) fn tls_handshake_timeout() -> std::time::Duration {
2430        std::time::Duration::from_nanos(10000000000)
2431    }
2432}
2433
2434mod platform_defaults {
2435    pub(super) fn apm_config_receiver_socket() -> String {
2436        match crate::platform_default::resolve(&["aix", "linux", "other"]) {
2437            "aix" => "/var/run/datadog/apm.socket".to_string(),
2438            "linux" => "/var/run/datadog/apm.socket".to_string(),
2439            "other" => "".to_string(),
2440            _ => Default::default(),
2441        }
2442    }
2443    pub(super) fn dogstatsd_socket() -> String {
2444        match crate::platform_default::resolve(&["aix", "linux", "other"]) {
2445            "aix" => "/var/run/datadog/dsd.socket".to_string(),
2446            "linux" => "/var/run/datadog/dsd.socket".to_string(),
2447            "other" => "".to_string(),
2448            _ => Default::default(),
2449        }
2450    }
2451}