Skip to main content

nominal_api/conjure/objects/scout/metadata/
search_metadata_request.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 SearchMetadataRequest {
16    #[builder(default, into)]
17    #[serde(rename = "resourceTypes", skip_serializing_if = "Option::is_none", default)]
18    resource_types: Option<std::collections::BTreeSet<super::ResourceType>>,
19    #[builder(default, into)]
20    #[serde(rename = "workspaces", skip_serializing_if = "Option::is_none", default)]
21    workspaces: Option<
22        std::collections::BTreeSet<super::super::super::api::rids::WorkspaceRid>,
23    >,
24    #[builder(default, into)]
25    #[serde(rename = "searchText", skip_serializing_if = "Option::is_none", default)]
26    search_text: Option<String>,
27    #[builder(default, into)]
28    #[serde(rename = "pageSize", skip_serializing_if = "Option::is_none", default)]
29    page_size: Option<i32>,
30    #[builder(default, into)]
31    #[serde(rename = "pageToken", skip_serializing_if = "Option::is_none", default)]
32    page_token: Option<super::super::super::api::Token>,
33    #[serde(rename = "sortBy")]
34    sort_by: super::MetadataSortField,
35    #[builder(default, into)]
36    #[serde(rename = "descending", skip_serializing_if = "Option::is_none", default)]
37    descending: Option<bool>,
38}
39impl SearchMetadataRequest {
40    /// Constructs a new instance of the type.
41    #[inline]
42    pub fn new(sort_by: super::MetadataSortField) -> Self {
43        Self::builder().sort_by(sort_by).build()
44    }
45    /// If omitted, all resource types are included.
46    #[inline]
47    pub fn resource_types(
48        &self,
49    ) -> Option<&std::collections::BTreeSet<super::ResourceType>> {
50        self.resource_types.as_ref().map(|o| &*o)
51    }
52    /// If omitted, results will come from all workspaces the user belongs to.
53    #[inline]
54    pub fn workspaces(
55        &self,
56    ) -> Option<
57        &std::collections::BTreeSet<super::super::super::api::rids::WorkspaceRid>,
58    > {
59        self.workspaces.as_ref().map(|o| &*o)
60    }
61    /// Case-insensitive substring filter.
62    #[inline]
63    pub fn search_text(&self) -> Option<&str> {
64        self.search_text.as_ref().map(|o| &**o)
65    }
66    /// Maximum number of items per page. Defaults to 1000 if not specified.
67    #[inline]
68    pub fn page_size(&self) -> Option<i32> {
69        self.page_size.as_ref().map(|o| *o)
70    }
71    /// Token for fetching the next page of results.
72    #[inline]
73    pub fn page_token(&self) -> Option<&super::super::super::api::Token> {
74        self.page_token.as_ref().map(|o| &*o)
75    }
76    #[inline]
77    pub fn sort_by(&self) -> &super::MetadataSortField {
78        &self.sort_by
79    }
80    /// If true, sort in descending order. Defaults to false.
81    #[inline]
82    pub fn descending(&self) -> Option<bool> {
83        self.descending.as_ref().map(|o| *o)
84    }
85}