use std::collections::HashMap;
use serde::{Deserialize, Serialize};
use time::OffsetDateTime;
use time::serde::rfc3339;
use super::{SessionAccessLevel, UserSessionType};
#[cfg_attr(
feature = "borsh",
derive(borsh::BorshSerialize, borsh::BorshDeserialize)
)]
#[derive(Debug, PartialEq, Eq, Clone, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct OnlineStatistics {
#[serde(rename = "activeHiddenSessionsByAccessLevel")]
pub active_hidden_session_counts_by_access_level:
HashMap<SessionAccessLevel, u32>,
#[serde(rename = "activeVisibleSessionsByAccessLevel")]
pub active_visible_session_counts_by_access_level:
HashMap<SessionAccessLevel, u32>,
#[serde(rename = "awayUsers")]
pub away_user_count: u32,
#[cfg_attr(
feature = "borsh",
borsh(
serialize_with = "crate::util::borsh::time::ser",
deserialize_with = "crate::util::borsh::time::de"
)
)]
#[serde(with = "rfc3339")]
pub capture_timestamp: OffsetDateTime,
#[serde(rename = "usersOnDesktop")]
pub desktop_user_count: u32,
#[serde(rename = "hiddenSessionsByAccessLevel")]
pub hidden_session_counts_by_access_level: HashMap<SessionAccessLevel, u32>,
#[serde(rename = "usersInHiddenSessions")]
pub hidden_session_user_count: u32,
pub instance_count: u32,
#[serde(rename = "usersOnMobile")]
pub mobile_user_count: u32,
#[serde(rename = "presentUsers")]
pub present_user_count: u32,
#[serde(rename = "usersInPrivateSessions")]
pub private_session_user_count: u32,
#[serde(rename = "registeredUsers")]
pub registered_user_count: u32,
#[serde(rename = "usersInScreen")]
pub screen_user_count: u32,
#[serde(rename = "usersByClientType")]
pub user_count_by_client_type: HashMap<UserSessionType, u32>,
#[serde(rename = "usersBySessionAccessLevel")]
pub user_count_by_session_access_level: HashMap<SessionAccessLevel, u32>,
#[serde(rename = "usersInVisiblePublicSessions")]
pub visible_public_session_user_count: u32,
#[serde(rename = "usersInVisibleSemiAccessibleSessions")]
pub visible_semi_accessible_session_user_count: u32,
#[serde(rename = "visibleSessionsByAccessLevel")]
pub visible_session_counts_by_access_level: HashMap<SessionAccessLevel, u32>,
#[serde(rename = "usersInVR")]
pub vr_user_count: u32,
}
#[cfg_attr(
feature = "borsh",
derive(borsh::BorshSerialize, borsh::BorshDeserialize)
)]
#[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct CloudStatistics {
pub asset_metadata_jobs: u32,
pub asset_variant_jobs: u32,
#[cfg_attr(
feature = "borsh",
borsh(
serialize_with = "crate::util::borsh::time::ser",
deserialize_with = "crate::util::borsh::time::de"
)
)]
#[serde(with = "rfc3339")]
pub capture_timestamp: OffsetDateTime,
pub computed_asset_variants: u32,
pub migration_records_per_minute: f32,
pub migration_tasks_in_queue: f32,
pub record_preprocess_jobs: u32,
pub upload_jobs: u32,
}