libdd_telemetry/data/
payload.rs1use crate::data::*;
5use serde::Serialize;
6
7#[derive(Serialize, Debug)]
8#[serde(tag = "request_type", content = "payload")]
9#[serde(rename_all = "kebab-case")]
10pub enum Payload {
11 AppStarted(AppStarted),
12 AppDependenciesLoaded(AppDependenciesLoaded),
13 AppIntegrationsChange(AppIntegrationsChange),
14 AppClientConfigurationChange(AppClientConfigurationChange),
15 AppHeartbeat(#[serde(skip_serializing)] ()),
16 AppClosing(#[serde(skip_serializing)] ()),
17 GenerateMetrics(GenerateMetrics),
18 Sketches(Distributions),
19 Logs(Vec<Log>),
20 MessageBatch(Vec<Payload>),
21 AppExtendedHeartbeat(AppStarted),
22}
23
24impl Payload {
25 pub fn request_type(&self) -> &'static str {
26 use Payload::*;
27 match self {
28 AppStarted(_) => "app-started",
29 AppDependenciesLoaded(_) => "app-dependencies-loaded",
30 AppIntegrationsChange(_) => "app-integrations-change",
31 AppClientConfigurationChange(_) => "app-client-configuration-change",
32 AppHeartbeat(_) => "app-heartbeat",
33 AppClosing(_) => "app-closing",
34 GenerateMetrics(_) => "generate-metrics",
35 Sketches(_) => "sketches",
36 Logs(_) => "logs",
37 MessageBatch(_) => "message-batch",
38 AppExtendedHeartbeat(_) => "app-extended-heartbeat",
39 }
40 }
41}