Skip to main content

box_open_sdk/models/schemas/
query.rs

1// Code generated by box-gantry 0.1.0 (spec 3fb3510fe12f2f80) for Box API 2024.0. DO NOT EDIT.
2
3#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
4pub struct QueryAncestorReference {
5    pub id: String,
6    pub r#type: String,
7}
8
9#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
10pub struct QueryInsightEntry {
11    pub key: Vec<String>,
12    pub r#type: QueryInsightEntryType,
13    pub metrics: std::collections::HashMap<String, QueryInsightMetricResult>,
14}
15
16#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
17pub struct QueryInsightMetricResult {
18    pub r#type: String,
19    pub values: std::collections::HashMap<String, f64>,
20}
21
22#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
23pub struct QueryInsights {
24    pub insights: Vec<QueryInsightEntry>,
25}
26
27#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
28pub struct QueryInsightsGroupBy {
29    pub field: String,
30    #[serde(default, skip_serializing_if = "Option::is_none")]
31    pub bucket_limit: Option<i64>,
32}
33
34#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
35pub struct QueryInsightsMetricDefinition {
36    pub r#type: QueryInsightsMetricDefinitionType,
37    pub field: String,
38}
39
40#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
41pub struct QueryInsightsRequestBody {
42    pub query: QueryInsightsRequestBodyQuery,
43    pub metrics: std::collections::HashMap<String, QueryInsightsMetricDefinition>,
44}
45
46#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
47pub struct QueryOrderBy {
48    pub field_key: String,
49    pub direction: QueryOrderByDirection,
50}
51
52#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
53pub struct QueryRequestBody {
54    pub query: QueryRequestBodyQuery,
55    #[serde(default, skip_serializing_if = "Option::is_none")]
56    pub order_by: Option<Vec<QueryOrderBy>>,
57    #[serde(default, skip_serializing_if = "Option::is_none")]
58    pub limit: Option<i64>,
59    #[serde(default, skip_serializing_if = "Option::is_none")]
60    pub fields: Option<Vec<String>>,
61    #[serde(default, skip_serializing_if = "Option::is_none")]
62    pub marker: Option<String>,
63}
64
65#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
66pub struct QueryResultEntry {
67    pub id: String,
68    pub r#type: String,
69    #[serde(flatten)]
70    pub extra: std::collections::HashMap<String, serde_json::Value>,
71}
72
73#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
74pub struct QueryResults {
75    pub entries: Vec<QueryResultEntry>,
76    pub next_marker: Option<String>,
77    pub limit: i64,
78}
79
80#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
81#[serde(transparent)]
82pub struct QueryInsightEntryType(pub String);
83
84impl QueryInsightEntryType {
85    pub const GROUP: &'static str = "group";
86    pub const OVERALL: &'static str = "overall";
87    pub const OTHER: &'static str = "other";
88}
89
90#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
91#[serde(transparent)]
92pub struct QueryInsightsMetricDefinitionType(pub String);
93
94impl QueryInsightsMetricDefinitionType {
95    pub const SUM: &'static str = "sum";
96    pub const AVG: &'static str = "avg";
97    pub const MIN: &'static str = "min";
98    pub const MAX: &'static str = "max";
99    pub const COUNT: &'static str = "count";
100}
101
102#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
103pub struct QueryInsightsRequestBodyQuery {
104    pub predicate: String,
105    #[serde(default, skip_serializing_if = "Option::is_none")]
106    pub params: Option<std::collections::HashMap<String, serde_json::Value>>,
107    #[serde(default, skip_serializing_if = "Option::is_none")]
108    pub ancestors: Option<Vec<QueryAncestorReference>>,
109    #[serde(default, skip_serializing_if = "Option::is_none")]
110    pub group_by: Option<Vec<QueryInsightsGroupBy>>,
111}
112
113#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
114#[serde(transparent)]
115pub struct QueryOrderByDirection(pub String);
116
117impl QueryOrderByDirection {
118    pub const ASC: &'static str = "asc";
119    pub const DESC: &'static str = "desc";
120}
121
122#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
123pub struct QueryRequestBodyQuery {
124    pub predicate: String,
125    #[serde(default, skip_serializing_if = "Option::is_none")]
126    pub params: Option<std::collections::HashMap<String, serde_json::Value>>,
127    #[serde(default, skip_serializing_if = "Option::is_none")]
128    pub ancestors: Option<Vec<QueryAncestorReference>>,
129}