asana_cli/models/
workspace.rs1use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq, Hash)]
7pub struct WorkspaceReference {
8 pub gid: String,
10 #[serde(default)]
12 pub name: Option<String>,
13 #[serde(default)]
15 pub resource_type: Option<String>,
16}
17
18impl WorkspaceReference {
19 #[must_use]
21 pub fn label(&self) -> String {
22 self.name.clone().unwrap_or_else(|| self.gid.clone())
23 }
24}
25
26#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
28#[serde(rename_all = "snake_case")]
29pub struct Workspace {
30 pub gid: String,
32 pub name: String,
34 #[serde(default)]
36 pub resource_type: Option<String>,
37 #[serde(default)]
39 pub email_domains: Vec<String>,
40 #[serde(default)]
42 pub is_organization: bool,
43}
44
45#[derive(Debug, Clone, Default)]
47pub struct WorkspaceListParams {
48 pub limit: Option<usize>,
50}