box-open-sdk 0.4.1

Box API client for Rust (open source, community, punk rock) — typed models, async managers, and a reqwest runtime with retry, backoff, and token refresh.
Documentation
// Code generated by box-gantry 0.1.0 (spec 3fb3510fe12f2f80) for Box API 2024.0. DO NOT EDIT.

#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct QueryAncestorReference {
    pub id: String,
    pub r#type: String,
}

#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct QueryInsightEntry {
    pub key: Vec<String>,
    pub r#type: QueryInsightEntryType,
    pub metrics: std::collections::HashMap<String, QueryInsightMetricResult>,
}

#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct QueryInsightMetricResult {
    pub r#type: String,
    pub values: std::collections::HashMap<String, f64>,
}

#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct QueryInsights {
    pub insights: Vec<QueryInsightEntry>,
}

#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct QueryInsightsGroupBy {
    pub field: String,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub bucket_limit: Option<i64>,
}

#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct QueryInsightsMetricDefinition {
    pub r#type: QueryInsightsMetricDefinitionType,
    pub field: String,
}

#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct QueryInsightsRequestBody {
    pub query: QueryInsightsRequestBodyQuery,
    pub metrics: std::collections::HashMap<String, QueryInsightsMetricDefinition>,
}

#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct QueryOrderBy {
    pub field_key: String,
    pub direction: QueryOrderByDirection,
}

#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct QueryRequestBody {
    pub query: QueryRequestBodyQuery,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub order_by: Option<Vec<QueryOrderBy>>,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub limit: Option<i64>,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub fields: Option<Vec<String>>,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub marker: Option<String>,
}

#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct QueryResultEntry {
    pub id: String,
    pub r#type: String,
    #[serde(flatten)]
    pub extra: std::collections::HashMap<String, serde_json::Value>,
}

#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct QueryResults {
    pub entries: Vec<QueryResultEntry>,
    pub next_marker: Option<String>,
    pub limit: i64,
}

#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct QueryInsightEntryType(pub String);

impl QueryInsightEntryType {
    pub const GROUP: &'static str = "group";
    pub const OVERALL: &'static str = "overall";
    pub const OTHER: &'static str = "other";
}

#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct QueryInsightsMetricDefinitionType(pub String);

impl QueryInsightsMetricDefinitionType {
    pub const SUM: &'static str = "sum";
    pub const AVG: &'static str = "avg";
    pub const MIN: &'static str = "min";
    pub const MAX: &'static str = "max";
    pub const COUNT: &'static str = "count";
}

#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct QueryInsightsRequestBodyQuery {
    pub predicate: String,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub params: Option<std::collections::HashMap<String, serde_json::Value>>,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub ancestors: Option<Vec<QueryAncestorReference>>,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub group_by: Option<Vec<QueryInsightsGroupBy>>,
}

#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct QueryOrderByDirection(pub String);

impl QueryOrderByDirection {
    pub const ASC: &'static str = "asc";
    pub const DESC: &'static str = "desc";
}

#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct QueryRequestBodyQuery {
    pub predicate: String,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub params: Option<std::collections::HashMap<String, serde_json::Value>>,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub ancestors: Option<Vec<QueryAncestorReference>>,
}