28 lines
909 B
Rust
28 lines
909 B
Rust
use crate::{
|
|
EditionCapabilities, EditionLimits, MachineAccessMode, OperationSecurityLevel, ProductEdition,
|
|
Protocol,
|
|
};
|
|
|
|
pub trait CapabilityProfile: Send + Sync {
|
|
fn capabilities(&self) -> EditionCapabilities;
|
|
}
|
|
|
|
#[derive(Clone, Copy, Debug, Default)]
|
|
pub struct CommunityCapabilityProfile;
|
|
|
|
impl CapabilityProfile for CommunityCapabilityProfile {
|
|
fn capabilities(&self) -> EditionCapabilities {
|
|
EditionCapabilities {
|
|
edition: ProductEdition::Community,
|
|
supported_protocols: vec![Protocol::Rest],
|
|
supported_security_levels: vec![OperationSecurityLevel::Standard],
|
|
machine_access_modes: vec![MachineAccessMode::StaticAgentKey],
|
|
limits: EditionLimits {
|
|
max_workspaces: Some(1),
|
|
max_users_per_workspace: Some(1),
|
|
max_agents_per_workspace: None,
|
|
},
|
|
}
|
|
}
|
|
}
|