use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct CopilotOrganizationDetails {
#[serde(rename = "seat_breakdown")]
pub seat_breakdown: Box<models::CopilotSeatBreakdown>,
#[serde(rename = "public_code_suggestions")]
pub public_code_suggestions: PublicCodeSuggestions,
#[serde(rename = "ide_chat", skip_serializing_if = "Option::is_none")]
pub ide_chat: Option<IdeChat>,
#[serde(rename = "platform_chat", skip_serializing_if = "Option::is_none")]
pub platform_chat: Option<PlatformChat>,
#[serde(rename = "cli", skip_serializing_if = "Option::is_none")]
pub cli: Option<Cli>,
#[serde(rename = "seat_management_setting")]
pub seat_management_setting: SeatManagementSetting,
}
impl CopilotOrganizationDetails {
pub fn new(seat_breakdown: models::CopilotSeatBreakdown, public_code_suggestions: PublicCodeSuggestions, seat_management_setting: SeatManagementSetting) -> CopilotOrganizationDetails {
CopilotOrganizationDetails {
seat_breakdown: Box::new(seat_breakdown),
public_code_suggestions,
ide_chat: None,
platform_chat: None,
cli: None,
seat_management_setting,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum PublicCodeSuggestions {
#[serde(rename = "allow")]
Allow,
#[serde(rename = "block")]
Block,
#[serde(rename = "unconfigured")]
Unconfigured,
#[serde(rename = "unknown")]
Unknown,
}
impl Default for PublicCodeSuggestions {
fn default() -> PublicCodeSuggestions {
Self::Allow
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum IdeChat {
#[serde(rename = "enabled")]
Enabled,
#[serde(rename = "disabled")]
Disabled,
#[serde(rename = "unconfigured")]
Unconfigured,
}
impl Default for IdeChat {
fn default() -> IdeChat {
Self::Enabled
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum PlatformChat {
#[serde(rename = "enabled")]
Enabled,
#[serde(rename = "disabled")]
Disabled,
#[serde(rename = "unconfigured")]
Unconfigured,
}
impl Default for PlatformChat {
fn default() -> PlatformChat {
Self::Enabled
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Cli {
#[serde(rename = "enabled")]
Enabled,
#[serde(rename = "disabled")]
Disabled,
#[serde(rename = "unconfigured")]
Unconfigured,
}
impl Default for Cli {
fn default() -> Cli {
Self::Enabled
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum SeatManagementSetting {
#[serde(rename = "assign_all")]
AssignAll,
#[serde(rename = "assign_selected")]
AssignSelected,
#[serde(rename = "disabled")]
Disabled,
#[serde(rename = "unconfigured")]
Unconfigured,
}
impl Default for SeatManagementSetting {
fn default() -> SeatManagementSetting {
Self::AssignAll
}
}