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.

use crate::serde_helpers::double_option;

use super::*;

#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct MetadataTemplate {
    pub id: String,
    pub r#type: MetadataTemplateType,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub scope: Option<String>,
    #[serde(
        rename = "templateKey",
        default,
        skip_serializing_if = "Option::is_none"
    )]
    pub template_key: Option<String>,
    #[serde(
        rename = "displayName",
        default,
        skip_serializing_if = "Option::is_none"
    )]
    pub display_name: Option<String>,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub hidden: Option<bool>,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub fields: Option<Vec<MetadataTemplateFields>>,
    #[serde(
        rename = "copyInstanceOnItemCopy",
        default,
        skip_serializing_if = "Option::is_none"
    )]
    pub copy_instance_on_item_copy: Option<bool>,
}

#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct MetadataTemplates {
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub limit: Option<i64>,
    #[serde(
        default,
        skip_serializing_if = "Option::is_none",
        deserialize_with = "double_option"
    )]
    pub next_marker: Option<Option<String>>,
    #[serde(
        default,
        skip_serializing_if = "Option::is_none",
        deserialize_with = "double_option"
    )]
    pub prev_marker: Option<Option<String>>,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub entries: Option<Vec<MetadataTemplate>>,
}

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

impl MetadataTemplateFieldsType {
    pub const STRING: &'static str = "string";
    pub const FLOAT: &'static str = "float";
    pub const DATE: &'static str = "date";
    pub const ENUM: &'static str = "enum";
    pub const MULTISELECT: &'static str = "multiSelect";
    pub const TAXONOMY: &'static str = "taxonomy";
    pub const INTEGER: &'static str = "integer";
}

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

#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct FieldsOptionsRules {
    #[serde(
        rename = "multiSelect",
        default,
        skip_serializing_if = "Option::is_none"
    )]
    pub multi_select: Option<bool>,
    #[serde(
        rename = "selectableLevels",
        default,
        skip_serializing_if = "Option::is_none"
    )]
    pub selectable_levels: Option<Vec<i64>>,
}

#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct MetadataTemplateFields {
    pub r#type: MetadataTemplateFieldsType,
    pub key: String,
    #[serde(rename = "displayName")]
    pub display_name: String,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub description: Option<String>,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub hidden: Option<bool>,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub options: Option<Vec<MetadataTemplateFieldsOptions>>,
    #[serde(
        rename = "taxonomyKey",
        default,
        skip_serializing_if = "Option::is_none"
    )]
    pub taxonomy_key: Option<String>,
    #[serde(
        rename = "taxonomyId",
        default,
        skip_serializing_if = "Option::is_none"
    )]
    pub taxonomy_id: Option<String>,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub namespace: Option<String>,
    #[serde(
        rename = "optionsRules",
        default,
        skip_serializing_if = "Option::is_none"
    )]
    pub options_rules: Option<FieldsOptionsRules>,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub id: Option<String>,
}

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

impl PutIdSchemaOp {
    pub const EDITTEMPLATE: &'static str = "editTemplate";
    pub const ADDFIELD: &'static str = "addField";
    pub const REORDERFIELDS: &'static str = "reorderFields";
    pub const ADDENUMOPTION: &'static str = "addEnumOption";
    pub const REORDERENUMOPTIONS: &'static str = "reorderEnumOptions";
    pub const REORDERMULTISELECTOPTIONS: &'static str = "reorderMultiSelectOptions";
    pub const ADDMULTISELECTOPTION: &'static str = "addMultiSelectOption";
    pub const EDITFIELD: &'static str = "editField";
    pub const REMOVEFIELD: &'static str = "removeField";
    pub const EDITENUMOPTION: &'static str = "editEnumOption";
    pub const REMOVEENUMOPTION: &'static str = "removeEnumOption";
    pub const EDITMULTISELECTOPTION: &'static str = "editMultiSelectOption";
    pub const REMOVEMULTISELECTOPTION: &'static str = "removeMultiSelectOption";
}

#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct UpdateSchemaRequest {
    pub op: PutIdSchemaOp,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub data: Option<std::collections::HashMap<String, serde_json::Value>>,
    #[serde(rename = "fieldKey", default, skip_serializing_if = "Option::is_none")]
    pub field_key: Option<String>,
    #[serde(rename = "fieldKeys", default, skip_serializing_if = "Option::is_none")]
    pub field_keys: Option<Vec<String>>,
    #[serde(
        rename = "enumOptionKey",
        default,
        skip_serializing_if = "Option::is_none"
    )]
    pub enum_option_key: Option<String>,
    #[serde(
        rename = "enumOptionKeys",
        default,
        skip_serializing_if = "Option::is_none"
    )]
    pub enum_option_keys: Option<Vec<String>>,
    #[serde(
        rename = "multiSelectOptionKey",
        default,
        skip_serializing_if = "Option::is_none"
    )]
    pub multi_select_option_key: Option<String>,
    #[serde(
        rename = "multiSelectOptionKeys",
        default,
        skip_serializing_if = "Option::is_none"
    )]
    pub multi_select_option_keys: Option<Vec<String>>,
}

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

impl CreateSchemaRequestFieldsType {
    pub const STRING: &'static str = "string";
    pub const FLOAT: &'static str = "float";
    pub const DATE: &'static str = "date";
    pub const ENUM: &'static str = "enum";
    pub const MULTISELECT: &'static str = "multiSelect";
    pub const TAXONOMY: &'static str = "taxonomy";
}

#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct PostSchemaFields {
    pub r#type: CreateSchemaRequestFieldsType,
    pub key: String,
    #[serde(rename = "displayName")]
    pub display_name: String,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub description: Option<String>,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub hidden: Option<bool>,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub options: Option<Vec<FieldsOptions>>,
    #[serde(
        rename = "taxonomyKey",
        default,
        skip_serializing_if = "Option::is_none"
    )]
    pub taxonomy_key: Option<String>,
    #[serde(
        rename = "taxonomyId",
        default,
        skip_serializing_if = "Option::is_none"
    )]
    pub taxonomy_id: Option<String>,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub namespace: Option<String>,
    #[serde(
        rename = "optionsRules",
        default,
        skip_serializing_if = "Option::is_none"
    )]
    pub options_rules: Option<FieldsOptionsRules>,
}

#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct CreateSchemaRequest {
    pub scope: String,
    #[serde(
        rename = "templateKey",
        default,
        skip_serializing_if = "Option::is_none"
    )]
    pub template_key: Option<String>,
    #[serde(rename = "displayName")]
    pub display_name: String,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub hidden: Option<bool>,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub fields: Option<Vec<PostSchemaFields>>,
    #[serde(
        rename = "copyInstanceOnItemCopy",
        default,
        skip_serializing_if = "Option::is_none"
    )]
    pub copy_instance_on_item_copy: Option<bool>,
}