Skip to main content

nominal_api/conjure/objects/security/api/workspace/
workspace.rs

1#[derive(
2    Debug,
3    Clone,
4    conjure_object::serde::Serialize,
5    conjure_object::serde::Deserialize,
6    PartialEq,
7    Eq,
8    PartialOrd,
9    Ord,
10    Hash
11)]
12#[serde(crate = "conjure_object::serde")]
13#[conjure_object::private::staged_builder::staged_builder]
14#[builder(crate = conjure_object::private::staged_builder, update, inline)]
15pub struct Workspace {
16    #[builder(into)]
17    #[serde(rename = "id")]
18    id: String,
19    #[serde(rename = "rid")]
20    rid: conjure_object::ResourceIdentifier,
21    #[serde(rename = "org")]
22    org: conjure_object::ResourceIdentifier,
23    #[builder(default, into)]
24    #[serde(rename = "displayName", skip_serializing_if = "Option::is_none", default)]
25    display_name: Option<String>,
26    #[builder(
27        default,
28        custom(
29            type = impl
30            Into<Option<super::WorkspaceSymbol>>,
31            convert = |v|v.into().map(Box::new)
32        )
33    )]
34    #[serde(rename = "symbol", skip_serializing_if = "Option::is_none", default)]
35    symbol: Option<Box<super::WorkspaceSymbol>>,
36    #[builder(custom(type = super::WorkspaceSettings, convert = Box::new))]
37    #[serde(rename = "settings")]
38    settings: Box<super::WorkspaceSettings>,
39}
40impl Workspace {
41    /// A unique identifier for the workspace within the organization. The workspace ID must be lower case alphanumeric characters, optionally separated by hyphens.
42    #[inline]
43    pub fn id(&self) -> &str {
44        &*self.id
45    }
46    #[inline]
47    pub fn rid(&self) -> &conjure_object::ResourceIdentifier {
48        &self.rid
49    }
50    #[inline]
51    pub fn org(&self) -> &conjure_object::ResourceIdentifier {
52        &self.org
53    }
54    #[inline]
55    pub fn display_name(&self) -> Option<&str> {
56        self.display_name.as_ref().map(|o| &**o)
57    }
58    #[inline]
59    pub fn symbol(&self) -> Option<&super::WorkspaceSymbol> {
60        self.symbol.as_ref().map(|o| &**o)
61    }
62    #[inline]
63    pub fn settings(&self) -> &super::WorkspaceSettings {
64        &*self.settings
65    }
66}