use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct InstanceGroupWithWorkspaces {
#[serde(rename = "name")]
pub name: String,
#[serde(rename = "summary", skip_serializing_if = "Option::is_none")]
pub summary: Option<String>,
#[serde(rename = "emails", skip_serializing_if = "Option::is_none")]
pub emails: Option<Vec<String>>,
#[serde(rename = "instance_role", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub instance_role: Option<Option<InstanceRole>>,
#[serde(rename = "workspaces", skip_serializing_if = "Option::is_none")]
pub workspaces: Option<Vec<models::WorkspaceInfo>>,
}
impl InstanceGroupWithWorkspaces {
pub fn new(name: String) -> InstanceGroupWithWorkspaces {
InstanceGroupWithWorkspaces {
name,
summary: None,
emails: None,
instance_role: None,
workspaces: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum InstanceRole {
#[serde(rename = "superadmin")]
Superadmin,
#[serde(rename = "devops")]
Devops,
}
impl Default for InstanceRole {
fn default() -> InstanceRole {
Self::Superadmin
}
}