use crate::gen::manager::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum MetricId {
#[serde(rename = "abandon.total")]
AbandonTotal,
#[serde(rename = "abandon.value")]
AbandonValue,
#[serde(rename = "agents.line-status.total")]
AgentsLineStatusTotal,
#[serde(rename = "agents.not_available.total")]
AgentsNotAvailableTotal,
#[serde(rename = "agents.presence.total")]
AgentsPresenceTotal,
#[serde(rename = "agents.state.available.total")]
AgentsStateAvailableTotal,
#[serde(rename = "agents.state.busy.total")]
AgentsStateBusyTotal,
#[serde(rename = "agents.state.declined.total")]
AgentsStateDeclinedTotal,
#[serde(rename = "agents.state.in_call.total")]
AgentsStateInCallTotal,
#[serde(rename = "agents.state.originated.total")]
AgentsStateOriginatedTotal,
#[serde(rename = "agents.state.ringing.total")]
AgentsStateRingingTotal,
#[serde(rename = "agents.state.selected.total")]
AgentsStateSelectedTotal,
#[serde(rename = "agents.state.unreachable.total")]
AgentsStateUnreachableTotal,
#[serde(rename = "agents.state.wrap_up.total")]
AgentsStateWrapUpTotal,
#[serde(rename = "agents.total")]
AgentsTotal,
#[serde(rename = "calls.duration.avg")]
CallsDurationAvg,
#[serde(rename = "calls.duration.total")]
CallsDurationTotal,
#[serde(rename = "calls.hold.avg")]
CallsHoldAvg,
#[serde(rename = "calls.hold.total")]
CallsHoldTotal,
#[serde(rename = "calls.total")]
CallsTotal,
#[serde(rename = "conversations.events.total")]
ConversationsEventsTotal,
#[serde(rename = "conversations.total")]
ConversationsTotal,
#[serde(rename = "date.value")]
DateValue,
#[serde(rename = "one.value")]
OneValue,
#[serde(rename = "outbound.campaign.agents.in_call.total")]
OutboundCampaignAgentsInCallTotal,
#[serde(rename = "outbound.campaign.agents.in_calls.total")]
OutboundCampaignAgentsInCallsTotal,
#[serde(rename = "outbound.campaign.agents.in_dead_calls.total")]
OutboundCampaignAgentsInDeadCallsTotal,
#[serde(rename = "outbound.campaign.agents.in_disp.total")]
OutboundCampaignAgentsInDispTotal,
#[serde(rename = "outbound.campaign.agents.logged_in.total")]
OutboundCampaignAgentsLoggedInTotal,
#[serde(rename = "outbound.campaign.agents.paused.total")]
OutboundCampaignAgentsPausedTotal,
#[serde(rename = "outbound.campaign.agents.waiting.total")]
OutboundCampaignAgentsWaitingTotal,
#[serde(rename = "outbound.campaign.calls.answer_ratio.total")]
OutboundCampaignCallsAnswerRatioTotal,
#[serde(rename = "outbound.campaign.calls.answered.total")]
OutboundCampaignCallsAnsweredTotal,
#[serde(rename = "outbound.campaign.calls.being_placed.total")]
OutboundCampaignCallsBeingPlacedTotal,
#[serde(rename = "outbound.campaign.calls.drop_answer_ratio.total")]
OutboundCampaignCallsDropAnswerRatioTotal,
#[serde(rename = "outbound.campaign.calls.drop_ratio.total")]
OutboundCampaignCallsDropRatioTotal,
#[serde(rename = "outbound.campaign.calls.dropped.total")]
OutboundCampaignCallsDroppedTotal,
#[serde(rename = "outbound.campaign.calls.in_ivr.total")]
OutboundCampaignCallsInIvrTotal,
#[serde(rename = "outbound.campaign.calls.ringing.total")]
OutboundCampaignCallsRingingTotal,
#[serde(rename = "outbound.campaign.calls.total_today.total")]
OutboundCampaignCallsTotalTodayTotal,
#[serde(rename = "outbound.campaign.calls.waiting_for_agents.total")]
OutboundCampaignCallsWaitingForAgentsTotal,
#[serde(rename = "outbound.campaign.leads.dialable.total")]
OutboundCampaignLeadsDialableTotal,
#[serde(rename = "outbound.campaign.leads.in_hopper.total")]
OutboundCampaignLeadsInHopperTotal,
#[serde(rename = "outbound.campaign.status.total")]
OutboundCampaignStatusTotal,
#[serde(rename = "queues.bridge-time.total")]
QueuesBridgeTimeTotal,
#[serde(rename = "queues.calls.total")]
QueuesCallsTotal,
#[serde(rename = "queues.calls.waiting.total")]
QueuesCallsWaitingTotal,
#[serde(rename = "queues.expected.wait-time.avg")]
QueuesExpectedWaitTimeAvg,
#[serde(rename = "queues.handle-time.avg")]
QueuesHandleTimeAvg,
#[serde(rename = "queues.handle-time.total")]
QueuesHandleTimeTotal,
#[serde(rename = "queues.talk-time.avg")]
QueuesTalkTimeAvg,
#[serde(rename = "queues.talk-time.total")]
QueuesTalkTimeTotal,
#[serde(rename = "queues.total")]
QueuesTotal,
#[serde(rename = "queues.wait-time.avg")]
QueuesWaitTimeAvg,
#[serde(rename = "queues.wait-time.total")]
QueuesWaitTimeTotal,
#[serde(rename = "queues.wrapup.avg")]
QueuesWrapupAvg,
#[serde(rename = "queues.wrapup.total")]
QueuesWrapupTotal,
#[serde(rename = "random.float.value")]
RandomFloatValue,
#[serde(rename = "random.int.value")]
RandomIntValue,
#[serde(rename = "recordings.duration.avg")]
RecordingsDurationAvg,
#[serde(rename = "recordings.duration.total")]
RecordingsDurationTotal,
#[serde(rename = "recordings.total")]
RecordingsTotal,
#[serde(rename = "service-level.total")]
ServiceLevelTotal,
#[serde(rename = "service-level.value")]
ServiceLevelValue,
#[serde(rename = "sms.total")]
SmsTotal,
#[serde(rename = "time.value")]
TimeValue,
#[serde(rename = "zero.value")]
ZeroValue,
}
impl std::fmt::Display for MetricId {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
match self {
Self::AbandonTotal => write!(f, "abandon.total"),
Self::AbandonValue => write!(f, "abandon.value"),
Self::AgentsLineStatusTotal => write!(f, "agents.line-status.total"),
Self::AgentsNotAvailableTotal => write!(f, "agents.not_available.total"),
Self::AgentsPresenceTotal => write!(f, "agents.presence.total"),
Self::AgentsStateAvailableTotal => write!(f, "agents.state.available.total"),
Self::AgentsStateBusyTotal => write!(f, "agents.state.busy.total"),
Self::AgentsStateDeclinedTotal => write!(f, "agents.state.declined.total"),
Self::AgentsStateInCallTotal => write!(f, "agents.state.in_call.total"),
Self::AgentsStateOriginatedTotal => write!(f, "agents.state.originated.total"),
Self::AgentsStateRingingTotal => write!(f, "agents.state.ringing.total"),
Self::AgentsStateSelectedTotal => write!(f, "agents.state.selected.total"),
Self::AgentsStateUnreachableTotal => write!(f, "agents.state.unreachable.total"),
Self::AgentsStateWrapUpTotal => write!(f, "agents.state.wrap_up.total"),
Self::AgentsTotal => write!(f, "agents.total"),
Self::CallsDurationAvg => write!(f, "calls.duration.avg"),
Self::CallsDurationTotal => write!(f, "calls.duration.total"),
Self::CallsHoldAvg => write!(f, "calls.hold.avg"),
Self::CallsHoldTotal => write!(f, "calls.hold.total"),
Self::CallsTotal => write!(f, "calls.total"),
Self::ConversationsEventsTotal => write!(f, "conversations.events.total"),
Self::ConversationsTotal => write!(f, "conversations.total"),
Self::DateValue => write!(f, "date.value"),
Self::OneValue => write!(f, "one.value"),
Self::OutboundCampaignAgentsInCallTotal => {
write!(f, "outbound.campaign.agents.in_call.total")
}
Self::OutboundCampaignAgentsInCallsTotal => {
write!(f, "outbound.campaign.agents.in_calls.total")
}
Self::OutboundCampaignAgentsInDeadCallsTotal => {
write!(f, "outbound.campaign.agents.in_dead_calls.total")
}
Self::OutboundCampaignAgentsInDispTotal => {
write!(f, "outbound.campaign.agents.in_disp.total")
}
Self::OutboundCampaignAgentsLoggedInTotal => {
write!(f, "outbound.campaign.agents.logged_in.total")
}
Self::OutboundCampaignAgentsPausedTotal => {
write!(f, "outbound.campaign.agents.paused.total")
}
Self::OutboundCampaignAgentsWaitingTotal => {
write!(f, "outbound.campaign.agents.waiting.total")
}
Self::OutboundCampaignCallsAnswerRatioTotal => {
write!(f, "outbound.campaign.calls.answer_ratio.total")
}
Self::OutboundCampaignCallsAnsweredTotal => {
write!(f, "outbound.campaign.calls.answered.total")
}
Self::OutboundCampaignCallsBeingPlacedTotal => {
write!(f, "outbound.campaign.calls.being_placed.total")
}
Self::OutboundCampaignCallsDropAnswerRatioTotal => {
write!(f, "outbound.campaign.calls.drop_answer_ratio.total")
}
Self::OutboundCampaignCallsDropRatioTotal => {
write!(f, "outbound.campaign.calls.drop_ratio.total")
}
Self::OutboundCampaignCallsDroppedTotal => {
write!(f, "outbound.campaign.calls.dropped.total")
}
Self::OutboundCampaignCallsInIvrTotal => {
write!(f, "outbound.campaign.calls.in_ivr.total")
}
Self::OutboundCampaignCallsRingingTotal => {
write!(f, "outbound.campaign.calls.ringing.total")
}
Self::OutboundCampaignCallsTotalTodayTotal => {
write!(f, "outbound.campaign.calls.total_today.total")
}
Self::OutboundCampaignCallsWaitingForAgentsTotal => {
write!(f, "outbound.campaign.calls.waiting_for_agents.total")
}
Self::OutboundCampaignLeadsDialableTotal => {
write!(f, "outbound.campaign.leads.dialable.total")
}
Self::OutboundCampaignLeadsInHopperTotal => {
write!(f, "outbound.campaign.leads.in_hopper.total")
}
Self::OutboundCampaignStatusTotal => write!(f, "outbound.campaign.status.total"),
Self::QueuesBridgeTimeTotal => write!(f, "queues.bridge-time.total"),
Self::QueuesCallsTotal => write!(f, "queues.calls.total"),
Self::QueuesCallsWaitingTotal => write!(f, "queues.calls.waiting.total"),
Self::QueuesExpectedWaitTimeAvg => write!(f, "queues.expected.wait-time.avg"),
Self::QueuesHandleTimeAvg => write!(f, "queues.handle-time.avg"),
Self::QueuesHandleTimeTotal => write!(f, "queues.handle-time.total"),
Self::QueuesTalkTimeAvg => write!(f, "queues.talk-time.avg"),
Self::QueuesTalkTimeTotal => write!(f, "queues.talk-time.total"),
Self::QueuesTotal => write!(f, "queues.total"),
Self::QueuesWaitTimeAvg => write!(f, "queues.wait-time.avg"),
Self::QueuesWaitTimeTotal => write!(f, "queues.wait-time.total"),
Self::QueuesWrapupAvg => write!(f, "queues.wrapup.avg"),
Self::QueuesWrapupTotal => write!(f, "queues.wrapup.total"),
Self::RandomFloatValue => write!(f, "random.float.value"),
Self::RandomIntValue => write!(f, "random.int.value"),
Self::RecordingsDurationAvg => write!(f, "recordings.duration.avg"),
Self::RecordingsDurationTotal => write!(f, "recordings.duration.total"),
Self::RecordingsTotal => write!(f, "recordings.total"),
Self::ServiceLevelTotal => write!(f, "service-level.total"),
Self::ServiceLevelValue => write!(f, "service-level.value"),
Self::SmsTotal => write!(f, "sms.total"),
Self::TimeValue => write!(f, "time.value"),
Self::ZeroValue => write!(f, "zero.value"),
}
}
}
impl Default for MetricId {
fn default() -> MetricId {
Self::AbandonTotal
}
}