use serde::{Deserialize, Serialize}; use crate::Protocol; #[derive(Clone, Copy, Debug, Serialize, Deserialize, PartialEq, Eq)] #[serde(rename_all = "snake_case")] pub enum ProductEdition { Community, } #[derive(Clone, Copy, Debug, Serialize, Deserialize, PartialEq, Eq)] #[serde(rename_all = "snake_case")] pub enum MachineAccessMode { StaticAgentKey, } #[derive(Clone, Copy, Debug, Serialize, Deserialize, PartialEq, Eq)] #[serde(rename_all = "snake_case")] pub enum OperationSecurityLevel { Standard, } impl Default for OperationSecurityLevel { fn default() -> Self { Self::Standard } } #[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq)] pub struct EditionLimits { pub max_workspaces: Option, pub max_users_per_workspace: Option, pub max_agents_per_workspace: Option, } #[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq)] pub struct EditionCapabilities { pub edition: ProductEdition, pub supported_protocols: Vec, pub supported_security_levels: Vec, pub machine_access_modes: Vec, pub limits: EditionLimits, }