use crate::serde_helpers::double_option;
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct AccessToken {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub access_token: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub expires_in: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub token_type: Option<AccessTokenTokenType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub restricted_to: Option<Vec<ResourceScope>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub refresh_token: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub issued_token_type: Option<AccessTokenIssuedTokenType>,
}
#[derive(Clone, Debug, PartialEq)]
pub enum AiAgent {
AiAgentAsk(AiAgentAsk),
AiAgentTextGen(AiAgentTextGen),
AiAgentExtract(AiAgentExtract),
AiAgentExtractStructured(AiAgentExtractStructured),
Unknown(serde_json::Value),
}
impl Default for AiAgent {
fn default() -> Self {
Self::Unknown(Default::default())
}
}
impl serde::Serialize for AiAgent {
fn serialize<S: serde::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
match self {
Self::AiAgentAsk(inner) => inner.serialize(serializer),
Self::AiAgentTextGen(inner) => inner.serialize(serializer),
Self::AiAgentExtract(inner) => inner.serialize(serializer),
Self::AiAgentExtractStructured(inner) => inner.serialize(serializer),
Self::Unknown(inner) => inner.serialize(serializer),
}
}
}
impl<'de> serde::Deserialize<'de> for AiAgent {
fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
let value = serde_json::Value::deserialize(deserializer)?;
let tag = value
.get("type")
.and_then(serde_json::Value::as_str)
.map(str::to_owned);
match tag.as_deref() {
Some("ai_agent_ask") => Ok(Self::AiAgentAsk(
serde_json::from_value(value).map_err(serde::de::Error::custom)?,
)),
Some("ai_agent_text_gen") => Ok(Self::AiAgentTextGen(
serde_json::from_value(value).map_err(serde::de::Error::custom)?,
)),
Some("ai_agent_extract") => Ok(Self::AiAgentExtract(
serde_json::from_value(value).map_err(serde::de::Error::custom)?,
)),
Some("ai_agent_extract_structured") => Ok(Self::AiAgentExtractStructured(
serde_json::from_value(value).map_err(serde::de::Error::custom)?,
)),
_ => Ok(Self::Unknown(value)),
}
}
}
#[derive(Clone, Debug, PartialEq)]
pub enum AiAgentAllowedEntity {
User(UserBase),
Group(GroupBase),
Unknown(serde_json::Value),
}
impl Default for AiAgentAllowedEntity {
fn default() -> Self {
Self::Unknown(Default::default())
}
}
impl serde::Serialize for AiAgentAllowedEntity {
fn serialize<S: serde::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
match self {
Self::User(inner) => inner.serialize(serializer),
Self::Group(inner) => inner.serialize(serializer),
Self::Unknown(inner) => inner.serialize(serializer),
}
}
}
impl<'de> serde::Deserialize<'de> for AiAgentAllowedEntity {
fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
let value = serde_json::Value::deserialize(deserializer)?;
let tag = value
.get("type")
.and_then(serde_json::Value::as_str)
.map(str::to_owned);
match tag.as_deref() {
Some("user") => Ok(Self::User(
serde_json::from_value(value).map_err(serde::de::Error::custom)?,
)),
Some("group") => Ok(Self::Group(
serde_json::from_value(value).map_err(serde::de::Error::custom)?,
)),
_ => Ok(Self::Unknown(value)),
}
}
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct AiAgentAsk {
pub r#type: AiAgentAskType,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub long_text: Option<AiAgentLongTextTool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub basic_text: Option<AiAgentBasicTextTool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub spreadsheet: Option<AiAgentSpreadsheetTool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub long_text_multi: Option<AiAgentLongTextTool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub basic_text_multi: Option<AiAgentBasicTextTool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub basic_image: Option<AiAgentBasicTextTool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub basic_image_multi: Option<AiAgentBasicTextTool>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct AiAgentBasicGenTool {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub model: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub num_tokens_for_completion: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub llm_endpoint_params: Option<AiLlmEndpointParams>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub system_message: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub prompt_template: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub embeddings: Option<AiAgentBasicGenToolEmbeddings>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub content_template: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct AiAgentBasicTextTool {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub model: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub num_tokens_for_completion: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub llm_endpoint_params: Option<AiLlmEndpointParams>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub system_message: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub prompt_template: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct AiAgentBasicTextToolBase {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub model: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub num_tokens_for_completion: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub llm_endpoint_params: Option<AiLlmEndpointParams>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct AiAgentBasicTextToolTextGen {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub model: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub num_tokens_for_completion: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub llm_endpoint_params: Option<AiLlmEndpointParams>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub system_message: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub prompt_template: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct AiAgentExtract {
pub r#type: AiAgentExtractType,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub long_text: Option<AiAgentLongTextTool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub basic_text: Option<AiAgentBasicTextTool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub basic_image: Option<AiAgentBasicTextTool>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct AiAgentExtractStructured {
pub r#type: AiAgentExtractStructuredType,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub long_text: Option<AiAgentLongTextTool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub basic_text: Option<AiAgentBasicTextTool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub basic_image: Option<AiAgentBasicTextTool>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct AiAgentInfo {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub models: Option<Vec<AiAgentInfoModels>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub processor: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct AiAgentLongTextTool {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub model: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub num_tokens_for_completion: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub llm_endpoint_params: Option<AiLlmEndpointParams>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub system_message: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub prompt_template: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub embeddings: Option<AiAgentBasicGenToolEmbeddings>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct AiAgentLongTextToolTextGen {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub model: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub num_tokens_for_completion: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub llm_endpoint_params: Option<AiLlmEndpointParams>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub system_message: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub prompt_template: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub embeddings: Option<AiAgentBasicGenToolEmbeddings>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct AiAgentReference {
pub r#type: AiAgentReferenceType,
pub id: String,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct AiAgentSpreadsheetTool {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub model: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub num_tokens_for_completion: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub llm_endpoint_params: Option<AiLlmEndpointParams>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct AiAgentTextGen {
pub r#type: AiAgentTextGenType,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub basic_gen: Option<AiAgentBasicGenTool>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct AiAsk {
pub mode: AiAskMode,
pub prompt: String,
pub items: Vec<AiItemAsk>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub dialogue_history: Option<Vec<AiDialogueHistory>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub include_citations: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ai_agent: Option<AiAskAgent>,
}
#[derive(Clone, Debug, PartialEq)]
pub enum AiAskAgent {
AiAgentId(AiAgentReference),
AiAgentAsk(AiAgentAsk),
Unknown(serde_json::Value),
}
impl Default for AiAskAgent {
fn default() -> Self {
Self::Unknown(Default::default())
}
}
impl serde::Serialize for AiAskAgent {
fn serialize<S: serde::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
match self {
Self::AiAgentId(inner) => inner.serialize(serializer),
Self::AiAgentAsk(inner) => inner.serialize(serializer),
Self::Unknown(inner) => inner.serialize(serializer),
}
}
}
impl<'de> serde::Deserialize<'de> for AiAskAgent {
fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
let value = serde_json::Value::deserialize(deserializer)?;
let tag = value
.get("type")
.and_then(serde_json::Value::as_str)
.map(str::to_owned);
match tag.as_deref() {
Some("ai_agent_id") => Ok(Self::AiAgentId(
serde_json::from_value(value).map_err(serde::de::Error::custom)?,
)),
Some("ai_agent_ask") => Ok(Self::AiAgentAsk(
serde_json::from_value(value).map_err(serde::de::Error::custom)?,
)),
_ => Ok(Self::Unknown(value)),
}
}
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct AiCitation {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub content: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<AiCitationType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct AiDialogueHistory {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub prompt: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub answer: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<chrono::DateTime<chrono::Utc>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct AiExtract {
pub prompt: String,
pub items: Vec<AiItemBase>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ai_agent: Option<AiExtractAgent>,
}
#[derive(Clone, Debug, PartialEq)]
pub enum AiExtractAgent {
AiAgentId(AiAgentReference),
AiAgentExtract(AiAgentExtract),
Unknown(serde_json::Value),
}
impl Default for AiExtractAgent {
fn default() -> Self {
Self::Unknown(Default::default())
}
}
impl serde::Serialize for AiExtractAgent {
fn serialize<S: serde::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
match self {
Self::AiAgentId(inner) => inner.serialize(serializer),
Self::AiAgentExtract(inner) => inner.serialize(serializer),
Self::Unknown(inner) => inner.serialize(serializer),
}
}
}
impl<'de> serde::Deserialize<'de> for AiExtractAgent {
fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
let value = serde_json::Value::deserialize(deserializer)?;
let tag = value
.get("type")
.and_then(serde_json::Value::as_str)
.map(str::to_owned);
match tag.as_deref() {
Some("ai_agent_id") => Ok(Self::AiAgentId(
serde_json::from_value(value).map_err(serde::de::Error::custom)?,
)),
Some("ai_agent_extract") => Ok(Self::AiAgentExtract(
serde_json::from_value(value).map_err(serde::de::Error::custom)?,
)),
_ => Ok(Self::Unknown(value)),
}
}
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct AiExtractFieldOption {
pub key: String,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct AiExtractResponse {}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct AiExtractStructured {
pub items: Vec<AiItemBase>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub metadata_template: Option<AiExtractStructuredMetadataTemplate>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub fields: Option<Vec<AiExtractStructuredFields>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ai_agent: Option<AiExtractStructuredAgent>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub include_confidence_score: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub include_reference: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub taxonomy_sources: Option<Vec<AiTaxonomySource>>,
}
#[derive(Clone, Debug, PartialEq)]
pub enum AiExtractStructuredAgent {
AiAgentId(AiAgentReference),
AiAgentExtractStructured(AiAgentExtractStructured),
Unknown(serde_json::Value),
}
impl Default for AiExtractStructuredAgent {
fn default() -> Self {
Self::Unknown(Default::default())
}
}
impl serde::Serialize for AiExtractStructuredAgent {
fn serialize<S: serde::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
match self {
Self::AiAgentId(inner) => inner.serialize(serializer),
Self::AiAgentExtractStructured(inner) => inner.serialize(serializer),
Self::Unknown(inner) => inner.serialize(serializer),
}
}
}
impl<'de> serde::Deserialize<'de> for AiExtractStructuredAgent {
fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
let value = serde_json::Value::deserialize(deserializer)?;
let tag = value
.get("type")
.and_then(serde_json::Value::as_str)
.map(str::to_owned);
match tag.as_deref() {
Some("ai_agent_id") => Ok(Self::AiAgentId(
serde_json::from_value(value).map_err(serde::de::Error::custom)?,
)),
Some("ai_agent_extract_structured") => Ok(Self::AiAgentExtractStructured(
serde_json::from_value(value).map_err(serde::de::Error::custom)?,
)),
_ => Ok(Self::Unknown(value)),
}
}
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct AiExtractStructuredResponse {
pub answer: AiExtractResponse,
pub created_at: chrono::DateTime<chrono::Utc>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub completion_reason: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub confidence_score: Option<std::collections::HashMap<String, serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub reference: Option<std::collections::HashMap<String, serde_json::Value>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ai_agent_info: Option<AiAgentInfo>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct AiExtractSubField {
pub key: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: 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 prompt: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub options: Option<Vec<AiExtractFieldOption>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct AiItemBase {
pub id: String,
pub r#type: AiCitationType,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub content: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct AiItemAsk {
pub id: String,
pub r#type: AiItemAskType,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub content: Option<String>,
}
#[derive(Clone, Debug, PartialEq)]
pub enum AiLlmEndpointParams {
OpenaiParams(AiLlmEndpointParamsOpenAi),
GoogleParams(AiLlmEndpointParamsGoogle),
AwsParams(AiLlmEndpointParamsAWS),
IbmParams(AiLlmEndpointParamsIBM),
Unknown(serde_json::Value),
}
impl Default for AiLlmEndpointParams {
fn default() -> Self {
Self::Unknown(Default::default())
}
}
impl serde::Serialize for AiLlmEndpointParams {
fn serialize<S: serde::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
match self {
Self::OpenaiParams(inner) => inner.serialize(serializer),
Self::GoogleParams(inner) => inner.serialize(serializer),
Self::AwsParams(inner) => inner.serialize(serializer),
Self::IbmParams(inner) => inner.serialize(serializer),
Self::Unknown(inner) => inner.serialize(serializer),
}
}
}
impl<'de> serde::Deserialize<'de> for AiLlmEndpointParams {
fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
let value = serde_json::Value::deserialize(deserializer)?;
let tag = value
.get("type")
.and_then(serde_json::Value::as_str)
.map(str::to_owned);
match tag.as_deref() {
Some("openai_params") => Ok(Self::OpenaiParams(
serde_json::from_value(value).map_err(serde::de::Error::custom)?,
)),
Some("google_params") => Ok(Self::GoogleParams(
serde_json::from_value(value).map_err(serde::de::Error::custom)?,
)),
Some("aws_params") => Ok(Self::AwsParams(
serde_json::from_value(value).map_err(serde::de::Error::custom)?,
)),
Some("ibm_params") => Ok(Self::IbmParams(
serde_json::from_value(value).map_err(serde::de::Error::custom)?,
)),
_ => Ok(Self::Unknown(value)),
}
}
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct AiLlmEndpointParamsAWS {
pub r#type: AiLlmEndpointParamsAWSType,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub temperature: Option<Option<f64>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub top_p: Option<Option<f64>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct AiLlmEndpointParamsGoogle {
pub r#type: AiLlmEndpointParamsGoogleType,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub temperature: Option<Option<f64>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub top_p: Option<Option<f64>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub top_k: Option<Option<f64>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct AiLlmEndpointParamsIBM {
pub r#type: AiLlmEndpointParamsIBMType,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub temperature: Option<Option<f64>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub top_p: Option<Option<f64>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub top_k: Option<Option<f64>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct AiLlmEndpointParamsOpenAi {
pub r#type: AiLlmEndpointParamsOpenAiType,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub temperature: Option<Option<f64>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub top_p: Option<Option<f64>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub frequency_penalty: Option<Option<f64>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub presence_penalty: Option<Option<f64>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub stop: Option<Option<String>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct AiMultipleAgentResponse {
#[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>>,
pub entries: Vec<AiSingleAgentResponseFull>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct AiOptionsRules {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub multi_select: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub selectable_levels: Option<Vec<i64>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct AiResponse {
pub answer: String,
pub created_at: chrono::DateTime<chrono::Utc>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub completion_reason: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ai_agent_info: Option<AiAgentInfo>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct AiResponseFull {
pub answer: String,
pub created_at: chrono::DateTime<chrono::Utc>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub completion_reason: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ai_agent_info: Option<AiAgentInfo>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub citations: Option<Vec<AiCitation>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct AiSingleAgentResponse {
pub id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<AiSingleAgentResponseType>,
pub origin: String,
pub name: String,
pub access_state: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_by: Option<UserBase>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub modified_by: Option<UserBase>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub modified_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub icon_reference: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub allowed_entities: Option<Vec<AiAgentAllowedEntity>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct AiSingleAgentResponseFull {
pub id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<AiSingleAgentResponseType>,
pub origin: String,
pub name: String,
pub access_state: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_by: Option<UserBase>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub modified_by: Option<UserBase>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub modified_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub icon_reference: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub allowed_entities: Option<Vec<AiAgentAllowedEntity>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ask: Option<AiStudioAgentAskResponse>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub text_gen: Option<AiStudioAgentTextGenResponse>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub extract: Option<AiStudioAgentExtractResponse>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct AiStudioAgentAsk {
pub r#type: AiAgentAskType,
pub access_state: String,
pub description: String,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub custom_instructions: Option<Option<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub suggested_questions: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub long_text: Option<AiStudioAgentLongTextTool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub basic_text: Option<AiStudioAgentBasicTextTool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub basic_image: Option<AiStudioAgentBasicTextTool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub spreadsheet: Option<AiStudioAgentSpreadsheetTool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub long_text_multi: Option<AiStudioAgentLongTextTool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub basic_text_multi: Option<AiStudioAgentBasicTextTool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub basic_image_multi: Option<AiStudioAgentBasicTextTool>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct AiStudioAgentAskResponse {
pub r#type: AiAgentAskType,
pub access_state: String,
pub description: String,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub custom_instructions: Option<Option<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub suggested_questions: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub long_text: Option<AiStudioAgentLongTextToolResponse>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub basic_text: Option<AiStudioAgentBasicTextToolResponse>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub basic_image: Option<AiStudioAgentBasicTextToolResponse>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub spreadsheet: Option<AiStudioAgentSpreadsheetToolResponse>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub long_text_multi: Option<AiStudioAgentLongTextToolResponse>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub basic_text_multi: Option<AiStudioAgentBasicTextToolResponse>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub basic_image_multi: Option<AiStudioAgentBasicTextToolResponse>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct AiStudioAgentBasicGenTool {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub model: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub num_tokens_for_completion: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub llm_endpoint_params: Option<AiLlmEndpointParams>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub system_message: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub prompt_template: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub embeddings: Option<AiAgentBasicGenToolEmbeddings>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub content_template: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_custom_instructions_included: Option<bool>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct AiStudioAgentBasicGenToolResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub model: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub num_tokens_for_completion: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub llm_endpoint_params: Option<AiLlmEndpointParams>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub system_message: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub prompt_template: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub embeddings: Option<AiAgentBasicGenToolEmbeddings>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub content_template: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_custom_instructions_included: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub warnings: Option<Vec<String>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct AiStudioAgentBasicTextTool {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub model: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub num_tokens_for_completion: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub llm_endpoint_params: Option<AiLlmEndpointParams>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub system_message: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub prompt_template: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_custom_instructions_included: Option<bool>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct AiStudioAgentBasicTextToolResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub model: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub num_tokens_for_completion: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub llm_endpoint_params: Option<AiLlmEndpointParams>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub system_message: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub prompt_template: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_custom_instructions_included: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub warnings: Option<Vec<String>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct AiStudioAgentExtract {
pub r#type: AiAgentExtractType,
pub access_state: String,
pub description: String,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub custom_instructions: Option<Option<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub long_text: Option<AiStudioAgentLongTextTool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub basic_text: Option<AiStudioAgentBasicTextTool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub basic_image: Option<AiStudioAgentBasicTextTool>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct AiStudioAgentExtractResponse {
pub r#type: AiAgentExtractType,
pub access_state: String,
pub description: String,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub custom_instructions: Option<Option<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub long_text: Option<AiStudioAgentLongTextToolResponse>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub basic_text: Option<AiStudioAgentBasicTextToolResponse>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub basic_image: Option<AiStudioAgentBasicTextToolResponse>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct AiStudioAgentLongTextTool {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub model: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub num_tokens_for_completion: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub llm_endpoint_params: Option<AiLlmEndpointParams>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub system_message: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub prompt_template: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub embeddings: Option<AiAgentBasicGenToolEmbeddings>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_custom_instructions_included: Option<bool>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct AiStudioAgentLongTextToolResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub model: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub num_tokens_for_completion: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub llm_endpoint_params: Option<AiLlmEndpointParams>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub system_message: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub prompt_template: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub embeddings: Option<AiAgentBasicGenToolEmbeddings>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_custom_instructions_included: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub warnings: Option<Vec<String>>,
}
pub type AiStudioAgentSpreadsheetTool = AiAgentSpreadsheetTool;
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct AiStudioAgentSpreadsheetToolResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub model: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub num_tokens_for_completion: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub llm_endpoint_params: Option<AiLlmEndpointParams>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub warnings: Option<Vec<String>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct AiStudioAgentTextGen {
pub r#type: AiAgentTextGenType,
pub access_state: String,
pub description: String,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub custom_instructions: Option<Option<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub suggested_questions: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub basic_gen: Option<AiStudioAgentBasicGenTool>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct AiStudioAgentTextGenResponse {
pub r#type: AiAgentTextGenType,
pub access_state: String,
pub description: String,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub custom_instructions: Option<Option<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub suggested_questions: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub basic_gen: Option<AiStudioAgentBasicGenToolResponse>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct AiTaxonomyFileReference {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<AiCitationType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub taxonomy_key: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct AiTaxonomyReference {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<AiTaxonomyReferenceType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub taxonomy_key: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
}
#[derive(Clone, Debug, PartialEq)]
pub enum AiTaxonomySource {
Taxonomy(AiTaxonomyReference),
File(AiTaxonomyFileReference),
Unknown(serde_json::Value),
}
impl Default for AiTaxonomySource {
fn default() -> Self {
Self::Unknown(Default::default())
}
}
impl serde::Serialize for AiTaxonomySource {
fn serialize<S: serde::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
match self {
Self::Taxonomy(inner) => inner.serialize(serializer),
Self::File(inner) => inner.serialize(serializer),
Self::Unknown(inner) => inner.serialize(serializer),
}
}
}
impl<'de> serde::Deserialize<'de> for AiTaxonomySource {
fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
let value = serde_json::Value::deserialize(deserializer)?;
let tag = value
.get("type")
.and_then(serde_json::Value::as_str)
.map(str::to_owned);
match tag.as_deref() {
Some("taxonomy") => Ok(Self::Taxonomy(
serde_json::from_value(value).map_err(serde::de::Error::custom)?,
)),
Some("file") => Ok(Self::File(
serde_json::from_value(value).map_err(serde::de::Error::custom)?,
)),
_ => Ok(Self::Unknown(value)),
}
}
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct AiTextGen {
pub prompt: String,
pub items: Vec<AiTextGenItems>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub dialogue_history: Option<Vec<AiDialogueHistory>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ai_agent: Option<AiTextGenAgent>,
}
#[derive(Clone, Debug, PartialEq)]
pub enum AiTextGenAgent {
AiAgentId(AiAgentReference),
AiAgentTextGen(AiAgentTextGen),
Unknown(serde_json::Value),
}
impl Default for AiTextGenAgent {
fn default() -> Self {
Self::Unknown(Default::default())
}
}
impl serde::Serialize for AiTextGenAgent {
fn serialize<S: serde::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
match self {
Self::AiAgentId(inner) => inner.serialize(serializer),
Self::AiAgentTextGen(inner) => inner.serialize(serializer),
Self::Unknown(inner) => inner.serialize(serializer),
}
}
}
impl<'de> serde::Deserialize<'de> for AiTextGenAgent {
fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
let value = serde_json::Value::deserialize(deserializer)?;
let tag = value
.get("type")
.and_then(serde_json::Value::as_str)
.map(str::to_owned);
match tag.as_deref() {
Some("ai_agent_id") => Ok(Self::AiAgentId(
serde_json::from_value(value).map_err(serde::de::Error::custom)?,
)),
Some("ai_agent_text_gen") => Ok(Self::AiAgentTextGen(
serde_json::from_value(value).map_err(serde::de::Error::custom)?,
)),
_ => Ok(Self::Unknown(value)),
}
}
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct AppItem {
pub id: String,
pub r#type: AppItemType,
pub application_type: String,
}
#[derive(Clone, Debug, PartialEq)]
pub enum AppItemAssociatedItem {
File(FileBase),
Folder(FolderBase),
WebLink(WebLinkBase),
Unknown(serde_json::Value),
}
impl Default for AppItemAssociatedItem {
fn default() -> Self {
Self::Unknown(Default::default())
}
}
impl serde::Serialize for AppItemAssociatedItem {
fn serialize<S: serde::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
match self {
Self::File(inner) => inner.serialize(serializer),
Self::Folder(inner) => inner.serialize(serializer),
Self::WebLink(inner) => inner.serialize(serializer),
Self::Unknown(inner) => inner.serialize(serializer),
}
}
}
impl<'de> serde::Deserialize<'de> for AppItemAssociatedItem {
fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
let value = serde_json::Value::deserialize(deserializer)?;
let tag = value
.get("type")
.and_then(serde_json::Value::as_str)
.map(str::to_owned);
match tag.as_deref() {
Some("file") => Ok(Self::File(
serde_json::from_value(value).map_err(serde::de::Error::custom)?,
)),
Some("folder") => Ok(Self::Folder(
serde_json::from_value(value).map_err(serde::de::Error::custom)?,
)),
Some("web_link") => Ok(Self::WebLink(
serde_json::from_value(value).map_err(serde::de::Error::custom)?,
)),
_ => Ok(Self::Unknown(value)),
}
}
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct AppItemAssociation {
pub id: String,
pub r#type: AppItemAssociationType,
pub app_item: AppItem,
pub item: AppItemAssociatedItem,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct AppItemAssociations {
#[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<AppItemAssociation>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct AppItemEventSource {
pub id: String,
pub r#type: AppItemType,
pub app_item_type: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub user: Option<UserMini>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub group: Option<GroupMini>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct Classification {
#[serde(
rename = "Box__Security__Classification__Key",
default,
skip_serializing_if = "Option::is_none"
)]
pub box_security_classification_key: Option<String>,
#[serde(rename = "$parent", default, skip_serializing_if = "Option::is_none")]
pub parent: Option<String>,
#[serde(rename = "$template", default, skip_serializing_if = "Option::is_none")]
pub template: Option<ClassificationTemplate2>,
#[serde(rename = "$scope", default, skip_serializing_if = "Option::is_none")]
pub scope: Option<String>,
#[serde(rename = "$version", default, skip_serializing_if = "Option::is_none")]
pub version: Option<i64>,
#[serde(rename = "$type", default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<String>,
#[serde(
rename = "$typeVersion",
default,
skip_serializing_if = "Option::is_none"
)]
pub type_version: Option<f64>,
#[serde(rename = "$canEdit", default, skip_serializing_if = "Option::is_none")]
pub can_edit: Option<bool>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct ClassificationTemplate {
pub id: String,
pub r#type: MetadataTemplateType,
pub scope: String,
#[serde(rename = "templateKey")]
pub template_key: ClassificationTemplate2,
#[serde(rename = "displayName")]
pub display_name: ClassificationTemplateDisplayName,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub hidden: Option<bool>,
#[serde(
rename = "copyInstanceOnItemCopy",
default,
skip_serializing_if = "Option::is_none"
)]
pub copy_instance_on_item_copy: Option<bool>,
pub fields: Vec<ClassificationTemplateFields>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct ClientError {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<ClientErrorType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub code: Option<ClientErrorCode>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub context_info: Option<Option<std::collections::HashMap<String, serde_json::Value>>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub help_url: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub request_id: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct Collaboration {
pub id: String,
pub r#type: CollaborationType,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub item: Option<Option<CollaborationItem>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub app_item: Option<Option<AppItem>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub accessible_by: Option<CollaborationAccessGrantee>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub invite_email: Option<Option<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub role: Option<CollaborationRole>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub expires_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_access_only: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status: Option<CollaborationStatus>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub acknowledged_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_by: Option<UserCollaborations>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub modified_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub acceptance_requirements_status: Option<CollaborationAcceptanceRequirementsStatus>,
}
#[derive(Clone, Debug, PartialEq)]
pub enum CollaborationAccessGrantee {
User(UserCollaborations),
Group(GroupMini),
Unknown(serde_json::Value),
}
impl Default for CollaborationAccessGrantee {
fn default() -> Self {
Self::Unknown(Default::default())
}
}
impl serde::Serialize for CollaborationAccessGrantee {
fn serialize<S: serde::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
match self {
Self::User(inner) => inner.serialize(serializer),
Self::Group(inner) => inner.serialize(serializer),
Self::Unknown(inner) => inner.serialize(serializer),
}
}
}
impl<'de> serde::Deserialize<'de> for CollaborationAccessGrantee {
fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
let value = serde_json::Value::deserialize(deserializer)?;
let tag = value
.get("type")
.and_then(serde_json::Value::as_str)
.map(str::to_owned);
match tag.as_deref() {
Some("user") => Ok(Self::User(
serde_json::from_value(value).map_err(serde::de::Error::custom)?,
)),
Some("group") => Ok(Self::Group(
serde_json::from_value(value).map_err(serde::de::Error::custom)?,
)),
_ => Ok(Self::Unknown(value)),
}
}
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct CollaborationAllowlistEntries {
#[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<CollaborationAllowlistEntry>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct CollaborationAllowlistEntry {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<CollaborationAllowlistEntryType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub domain: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub direction: Option<CollaborationAllowlistEntryDirection>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub enterprise: Option<CollaborationAllowlistEntryEnterprise>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<chrono::DateTime<chrono::Utc>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct CollaborationAllowlistExemptTarget {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<CollaborationAllowlistExemptTargetType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub enterprise: Option<CollaborationAllowlistEntryEnterprise>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub user: Option<UserMini>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub modified_at: Option<chrono::DateTime<chrono::Utc>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct CollaborationAllowlistExemptTargets {
#[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<CollaborationAllowlistExemptTarget>>,
}
#[derive(Clone, Debug, PartialEq)]
pub enum CollaborationItem {
File(File),
Folder(Folder),
WebLink(WebLink),
Unknown(serde_json::Value),
}
impl Default for CollaborationItem {
fn default() -> Self {
Self::Unknown(Default::default())
}
}
impl serde::Serialize for CollaborationItem {
fn serialize<S: serde::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
match self {
Self::File(inner) => inner.serialize(serializer),
Self::Folder(inner) => inner.serialize(serializer),
Self::WebLink(inner) => inner.serialize(serializer),
Self::Unknown(inner) => inner.serialize(serializer),
}
}
}
impl<'de> serde::Deserialize<'de> for CollaborationItem {
fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
let value = serde_json::Value::deserialize(deserializer)?;
let tag = value
.get("type")
.and_then(serde_json::Value::as_str)
.map(str::to_owned);
match tag.as_deref() {
Some("file") => Ok(Self::File(
serde_json::from_value(value).map_err(serde::de::Error::custom)?,
)),
Some("folder") => Ok(Self::Folder(
serde_json::from_value(value).map_err(serde::de::Error::custom)?,
)),
Some("web_link") => Ok(Self::WebLink(
serde_json::from_value(value).map_err(serde::de::Error::custom)?,
)),
_ => Ok(Self::Unknown(value)),
}
}
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct Collaborations {
#[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<Collaboration>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct CollaborationsOffsetPaginated {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub total_count: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub limit: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub offset: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub entries: Option<Vec<Collaboration>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct CollaboratorVariable {
pub r#type: CollaboratorVariableType,
pub variable_type: CollaboratorVariableVariableType,
pub variable_value: Vec<CollaboratorVariableVariableValue>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct Collection {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<CollectionType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<CollectionName>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub collection_type: Option<CollectionCollectionType>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct Collections {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub total_count: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub limit: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub offset: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub order: Option<Vec<CollectionsOrder>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub entries: Option<Vec<Collection>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct Comment {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<CommentType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_reply_comment: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_by: Option<UserMini>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub modified_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub item: Option<CommentItem>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct CommentBase {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<CommentType>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct CommentFull {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<CommentType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_reply_comment: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_by: Option<UserMini>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub modified_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub item: Option<CommentItem>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tagged_message: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct Comments {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub total_count: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub limit: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub offset: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub order: Option<Vec<CollectionsOrder>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub entries: Option<Vec<CommentFull>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct CompletionRuleVariable {
pub r#type: CollaboratorVariableType,
pub variable_type: CompletionRuleVariableVariableType,
pub variable_value: CompletionRuleVariableVariableValue,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct ConflictError {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<ClientErrorType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub code: Option<ClientErrorCode>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub context_info: Option<ConflictErrorContextInfo>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub help_url: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub request_id: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct CreateAiAgent {
pub r#type: AiSingleAgentResponseType,
pub name: String,
pub access_state: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub icon_reference: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub allowed_entities: Option<Vec<AiAgentAllowedEntity>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ask: Option<AiStudioAgentAsk>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub text_gen: Option<AiStudioAgentTextGen>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub extract: Option<AiStudioAgentExtract>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct DevicePinner {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<DevicePinnerType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub owned_by: Option<UserMini>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub product_name: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct DevicePinners {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub entries: Option<Vec<DevicePinner>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub limit: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub next_marker: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub order: Option<Vec<DevicePinnersOrder>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct EmailAlias {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<EmailAliasType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub email: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_confirmed: Option<bool>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct EmailAliases {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub total_count: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub entries: Option<Vec<EmailAlias>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct EnterpriseBase {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<EnterpriseType>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct Event {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub recorded_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub event_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_by: Option<UserMini>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub event_type: Option<EventEventType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub session_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub source: Option<EventSourceResource>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub additional_details: Option<std::collections::HashMap<String, serde_json::Value>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct Events {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub chunk_size: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub next_stream_position: Option<EventsNextStreamPosition>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub entries: Option<Vec<Event>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct EventSource {
pub item_type: EventSourceItemType,
pub item_id: String,
pub item_name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub classification: Option<EventSourceClassification>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub parent: Option<Option<FolderMini>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub owned_by: Option<UserMini>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct EventSourceResource(pub serde_json::Value);
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct File {
pub id: String,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub etag: Option<Option<String>>,
pub r#type: AiCitationType,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub sequence_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub sha1: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub file_version: Option<FileVersionMini>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub size: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub path_collection: Option<FilePathCollection>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub modified_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub trashed_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub purged_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub content_created_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub content_modified_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_by: Option<UserMini>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub modified_by: Option<UserMini>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub owned_by: Option<UserMini>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub shared_link: Option<Option<FileSharedLink>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub parent: Option<Option<FolderMini>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub item_status: Option<FileItemStatus>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct FileBase {
pub id: String,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub etag: Option<Option<String>>,
pub r#type: AiCitationType,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct FileFull {
pub id: String,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub etag: Option<Option<String>>,
pub r#type: AiCitationType,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub sequence_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub sha1: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub file_version: Option<FileVersionMini>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub size: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub path_collection: Option<FilePathCollection>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub modified_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub trashed_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub purged_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub content_created_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub content_modified_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_by: Option<UserMini>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub modified_by: Option<UserMini>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub owned_by: Option<UserMini>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub shared_link: Option<Option<FileSharedLink>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub parent: Option<Option<FolderMini>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub item_status: Option<FileItemStatus>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub version_number: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub comment_count: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub permissions: Option<FileFullPermissions>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tags: Option<Vec<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub lock: Option<Option<FileFullLock>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub extension: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_package: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub expiring_embed_link: Option<FileFullExpiringEmbedLink>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub watermark_info: Option<FileFullWatermarkInfo>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_accessible_via_shared_link: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub allowed_invitee_roles: Option<Vec<FileFullAllowedInviteeRoles>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_externally_owned: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub has_collaborations: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub metadata:
Option<std::collections::HashMap<String, std::collections::HashMap<String, MetadataFull>>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub expires_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub representations: Option<FileFullRepresentations>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub classification: Option<Option<FileFullClassification>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub uploader_display_name: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub disposition_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub shared_link_permission_options: Option<Option<Vec<FileFullSharedLinkPermissionOptions>>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_associated_with_app_item: Option<bool>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct FileMini {
pub id: String,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub etag: Option<Option<String>>,
pub r#type: AiCitationType,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub sequence_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub sha1: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub file_version: Option<FileVersionMini>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct FileConflict {
pub id: String,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub etag: Option<Option<String>>,
pub r#type: AiCitationType,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub sequence_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub sha1: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub file_version: Option<FileVersionMini>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct FileRequest {
pub id: String,
pub r#type: FileRequestType,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub title: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub description: Option<Option<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status: Option<FileRequestStatus>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_email_required: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_description_required: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub expires_at: Option<chrono::DateTime<chrono::Utc>>,
pub folder: FolderMini,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub url: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub etag: Option<Option<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_by: Option<UserMini>,
pub created_at: chrono::DateTime<chrono::Utc>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub updated_by: Option<UserMini>,
pub updated_at: chrono::DateTime<chrono::Utc>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct FileRequestCopyRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub title: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status: Option<FileRequestStatus>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_email_required: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_description_required: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub expires_at: Option<chrono::DateTime<chrono::Utc>>,
pub folder: FileRequestCopyRequestFolder,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct FileRequestUpdateRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub title: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status: Option<FileRequestStatus>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_email_required: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_description_required: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub expires_at: Option<chrono::DateTime<chrono::Utc>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct Files {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub total_count: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub entries: Option<Vec<FileFull>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct FilesOnHold {
#[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<FileMini>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct FilesUnderRetention {
#[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<FileMini>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct FileVersion {
pub id: String,
pub r#type: FileVersionType,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub sha1: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub size: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub modified_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub modified_by: Option<UserMini>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub trashed_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub trashed_by: Option<UserMini>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub restored_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub restored_by: Option<UserMini>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub purged_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub uploader_display_name: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct FileVersionBase {
pub id: String,
pub r#type: FileVersionType,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct FileVersionFull {
pub id: String,
pub r#type: FileVersionType,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub sha1: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub size: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub modified_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub modified_by: Option<UserMini>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub trashed_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub trashed_by: Option<UserMini>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub restored_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub restored_by: Option<UserMini>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub purged_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub uploader_display_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub version_number: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct FileVersionMini {
pub id: String,
pub r#type: FileVersionType,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub sha1: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct FileVersionLegalHold {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<FileVersionLegalHoldType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub file_version: Option<FileVersionMini>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub file: Option<FileMini>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub legal_hold_policy_assignments: Option<Vec<LegalHoldPolicyAssignment>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub deleted_at: Option<chrono::DateTime<chrono::Utc>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct FileVersionLegalHolds {
#[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<FileVersionLegalHold>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct FileVersionRetention {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<FileVersionRetentionType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub file_version: Option<FileVersionMini>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub file: Option<FileMini>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub applied_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub disposition_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub winning_retention_policy: Option<RetentionPolicyMini>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct FileVersionRetentions {
#[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<FileVersionRetention>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct FileVersions {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub total_count: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub limit: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub offset: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub order: Option<Vec<CollectionsOrder>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub entries: Option<Vec<FileVersionFull>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct FileVersionsOnHold {
#[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<FileVersion>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct Folder {
pub id: String,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub etag: Option<Option<String>>,
pub r#type: FolderType,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub sequence_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub created_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub modified_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub size: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub path_collection: Option<FilePathCollection>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_by: Option<UserMini>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub modified_by: Option<UserMini>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub trashed_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub purged_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub content_created_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub content_modified_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub owned_by: Option<UserMini>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub shared_link: Option<Option<FileSharedLink>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub folder_upload_email: Option<Option<FolderFolderUploadEmail>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub parent: Option<Option<FolderMini>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub item_status: Option<FileItemStatus>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub item_collection: Option<Items>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct FolderBase {
pub id: String,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub etag: Option<Option<String>>,
pub r#type: FolderType,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct FolderFull {
pub id: String,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub etag: Option<Option<String>>,
pub r#type: FolderType,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub sequence_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub created_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub modified_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub size: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub path_collection: Option<FilePathCollection>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_by: Option<UserMini>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub modified_by: Option<UserMini>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub trashed_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub purged_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub content_created_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub content_modified_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub owned_by: Option<UserMini>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub shared_link: Option<Option<FileSharedLink>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub folder_upload_email: Option<Option<FolderFolderUploadEmail>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub parent: Option<Option<FolderMini>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub item_status: Option<FileItemStatus>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub item_collection: Option<Items>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub sync_state: Option<FolderFullSyncState>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub has_collaborations: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub permissions: Option<FolderFullPermissions>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tags: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub can_non_owners_invite: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_externally_owned: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub metadata:
Option<std::collections::HashMap<String, std::collections::HashMap<String, MetadataFull>>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_collaboration_restricted_to_enterprise: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub allowed_shared_link_access_levels: Option<Vec<SharedLinkAccess>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub allowed_invitee_roles: Option<Vec<FileFullAllowedInviteeRoles>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub watermark_info: Option<FileFullWatermarkInfo>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_accessible_via_shared_link: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub can_non_owners_view_collaborators: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub classification: Option<Option<FileFullClassification>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_associated_with_app_item: Option<bool>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct FolderMini {
pub id: String,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub etag: Option<Option<String>>,
pub r#type: FolderType,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub sequence_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct FolderLock {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub folder: Option<FolderMini>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_by: Option<UserBase>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub locked_operations: Option<FolderLockLockedOperations>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub lock_type: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct FolderLocks {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub entries: Option<Vec<FolderLock>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub limit: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub next_marker: Option<Option<String>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct FolderReference {
pub r#type: FolderType,
pub id: String,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct GenericSource {}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct Group {
pub id: String,
pub r#type: GroupType,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub group_type: Option<GroupGroupType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub modified_at: Option<chrono::DateTime<chrono::Utc>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct GroupBase {
pub id: String,
pub r#type: GroupType,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct GroupFull {
pub id: String,
pub r#type: GroupType,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub group_type: Option<GroupGroupType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub modified_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub provenance: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub external_sync_identifier: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub invitability_level: Option<GroupFullInvitabilityLevel>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub member_viewability_level: Option<GroupFullInvitabilityLevel>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub permissions: Option<GroupFullPermissions>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct GroupMini {
pub id: String,
pub r#type: GroupType,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub group_type: Option<GroupGroupType>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct GroupMembership {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<GroupMembershipType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub user: Option<UserMini>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub group: Option<GroupMini>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub role: Option<GroupMembershipRole>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub modified_at: Option<chrono::DateTime<chrono::Utc>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct GroupMemberships {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub total_count: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub limit: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub offset: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub order: Option<Vec<CollectionsOrder>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub entries: Option<Vec<GroupMembership>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct Groups {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub total_count: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub limit: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub offset: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub order: Option<Vec<CollectionsOrder>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub entries: Option<Vec<GroupFull>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct IntegrationMapping {
pub id: String,
pub r#type: IntegrationMappingType,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub integration_type: Option<IntegrationMappingIntegrationType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_manually_created: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub options: Option<IntegrationMappingSlackOptions>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_by: Option<UserIntegrationMappings>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub modified_by: Option<UserIntegrationMappings>,
pub partner_item: IntegrationMappingPartnerItemSlack,
pub box_item: FolderMini,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub modified_at: Option<chrono::DateTime<chrono::Utc>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct IntegrationMappingBase {
pub id: String,
pub r#type: IntegrationMappingType,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct IntegrationMappingBoxItemSlack {
pub r#type: FolderType,
pub id: String,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct IntegrationMappingPartnerItemSlack {
pub r#type: IntegrationMappingPartnerItemSlackType,
pub id: String,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub slack_workspace_id: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub slack_org_id: Option<Option<String>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct IntegrationMappingPartnerItemTeams {
pub r#type: IntegrationMappingPartnerItemTeamsType,
pub id: String,
pub tenant_id: String,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct IntegrationMappingPartnerItemTeamsCreateRequest {
pub r#type: IntegrationMappingPartnerItemTeamsType,
pub id: String,
pub tenant_id: String,
pub team_id: String,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct IntegrationMappings {
#[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")]
pub entries: Option<Vec<IntegrationMapping>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct IntegrationMappingSlackCreateRequest {
pub partner_item: IntegrationMappingPartnerItemSlack,
pub box_item: IntegrationMappingBoxItemSlack,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub options: Option<IntegrationMappingSlackOptions>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct IntegrationMappingSlackOptions {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_access_management_disabled: Option<bool>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct IntegrationMappingsTeams {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub entries: Option<Vec<IntegrationMappingTeams>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct IntegrationMappingTeams {
pub id: String,
pub r#type: IntegrationMappingType,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub integration_type: Option<IntegrationMappingTeamsIntegrationType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_overridden_by_manual_mapping: Option<bool>,
pub partner_item: IntegrationMappingPartnerItemTeams,
pub box_item: FolderReference,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub modified_at: Option<chrono::DateTime<chrono::Utc>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct IntegrationMappingTeamsCreateRequest {
pub partner_item: IntegrationMappingPartnerItemTeamsCreateRequest,
pub box_item: FolderReference,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct Invite {
pub id: String,
pub r#type: InviteType,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub invited_to: Option<CollaborationAllowlistEntryEnterprise>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub actionable_by: Option<UserMini>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub invited_by: Option<UserMini>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub modified_at: Option<chrono::DateTime<chrono::Utc>>,
}
#[derive(Clone, Debug, PartialEq)]
pub enum Item {
File(FileFull),
Folder(FolderMini),
WebLink(WebLink),
Unknown(serde_json::Value),
}
impl Default for Item {
fn default() -> Self {
Self::Unknown(Default::default())
}
}
impl serde::Serialize for Item {
fn serialize<S: serde::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
match self {
Self::File(inner) => inner.serialize(serializer),
Self::Folder(inner) => inner.serialize(serializer),
Self::WebLink(inner) => inner.serialize(serializer),
Self::Unknown(inner) => inner.serialize(serializer),
}
}
}
impl<'de> serde::Deserialize<'de> for Item {
fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
let value = serde_json::Value::deserialize(deserializer)?;
let tag = value
.get("type")
.and_then(serde_json::Value::as_str)
.map(str::to_owned);
match tag.as_deref() {
Some("file") => Ok(Self::File(
serde_json::from_value(value).map_err(serde::de::Error::custom)?,
)),
Some("folder") => Ok(Self::Folder(
serde_json::from_value(value).map_err(serde::de::Error::custom)?,
)),
Some("web_link") => Ok(Self::WebLink(
serde_json::from_value(value).map_err(serde::de::Error::custom)?,
)),
_ => Ok(Self::Unknown(value)),
}
}
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct Items {
#[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 total_count: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub offset: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub order: Option<Vec<CollectionsOrder>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub entries: Option<Vec<Item>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct ItemsOffsetPaginated {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub total_count: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub limit: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub offset: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub order: Option<Vec<CollectionsOrder>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub entries: Option<Vec<Item>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct KeywordSkillCard {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<chrono::DateTime<chrono::Utc>>,
pub r#type: KeywordSkillCardType,
pub skill_card_type: KeywordSkillCardSkillCardType,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub skill_card_title: Option<KeywordSkillCardSkillCardTitle>,
pub skill: KeywordSkillCardSkill,
pub invocation: KeywordSkillCardInvocation,
pub entries: Vec<KeywordSkillCardEntries>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct LegalHoldPolicies {
#[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<LegalHoldPolicy>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct LegalHoldPolicy {
pub id: String,
pub r#type: LegalHoldPolicyType,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub policy_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status: Option<LegalHoldPolicyStatus>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub assignment_counts: Option<LegalHoldPolicyAssignmentCounts>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_by: Option<UserMini>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub modified_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub deleted_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub filter_started_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub filter_ended_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub release_notes: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct LegalHoldPolicyMini {
pub id: String,
pub r#type: LegalHoldPolicyType,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct LegalHoldPolicyAssignedItem {
pub r#type: LegalHoldPolicyAssignedItemType,
pub id: String,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct LegalHoldPolicyAssignment {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<LegalHoldPolicyAssignmentType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub legal_hold_policy: Option<LegalHoldPolicyMini>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub assigned_to: Option<LegalHoldPolicyAssignedItem>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub assigned_by: Option<UserMini>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub assigned_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub deleted_at: Option<chrono::DateTime<chrono::Utc>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct LegalHoldPolicyAssignmentBase {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<LegalHoldPolicyAssignmentType>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct LegalHoldPolicyAssignments {
#[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<LegalHoldPolicyAssignment>>,
}
pub type Metadata = MetadataBase;
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct MetadataBase {
#[serde(rename = "$parent", default, skip_serializing_if = "Option::is_none")]
pub parent: Option<String>,
#[serde(rename = "$template", default, skip_serializing_if = "Option::is_none")]
pub template: Option<String>,
#[serde(rename = "$scope", default, skip_serializing_if = "Option::is_none")]
pub scope: Option<String>,
#[serde(rename = "$version", default, skip_serializing_if = "Option::is_none")]
pub version: Option<i64>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct MetadataFull {
#[serde(rename = "$parent", default, skip_serializing_if = "Option::is_none")]
pub parent: Option<String>,
#[serde(rename = "$template", default, skip_serializing_if = "Option::is_none")]
pub template: Option<String>,
#[serde(rename = "$scope", default, skip_serializing_if = "Option::is_none")]
pub scope: Option<String>,
#[serde(rename = "$version", default, skip_serializing_if = "Option::is_none")]
pub version: Option<i64>,
#[serde(rename = "$canEdit", default, skip_serializing_if = "Option::is_none")]
pub can_edit: Option<bool>,
#[serde(rename = "$id", default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(rename = "$type", default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<String>,
#[serde(
rename = "$typeVersion",
default,
skip_serializing_if = "Option::is_none"
)]
pub type_version: Option<i64>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct MetadataCascadePolicies {
#[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<MetadataCascadePolicy>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct MetadataCascadePolicy {
pub id: String,
pub r#type: MetadataCascadePolicyType,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub owner_enterprise: Option<MetadataCascadePolicyOwnerEnterprise>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub parent: Option<MetadataCascadePolicyParent>,
#[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>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct MetadataError {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub code: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub request_id: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct MetadataFieldFilterDateRange {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub lt: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub gt: Option<chrono::DateTime<chrono::Utc>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct MetadataFieldFilterFloatRange {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub lt: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub gt: Option<f64>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct MetadataFilter {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub scope: Option<MetadataFilterScope>,
#[serde(
rename = "templateKey",
default,
skip_serializing_if = "Option::is_none"
)]
pub template_key: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub filters: Option<std::collections::HashMap<String, MetadataFilterValue>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct MetadataFilterValue(pub serde_json::Value);
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct MetadataInstanceValue(pub serde_json::Value);
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct MetadataQuery {
pub from: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub query: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub query_params: Option<std::collections::HashMap<String, serde_json::Value>>,
pub ancestor_folder_id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub order_by: Option<Vec<MetadataQueryOrderBy>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub limit: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub marker: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub fields: Option<Vec<String>>,
}
#[derive(Clone, Debug, PartialEq)]
pub enum MetadataQueryResultItem {
File(FileFull),
Folder(FolderFull),
Unknown(serde_json::Value),
}
impl Default for MetadataQueryResultItem {
fn default() -> Self {
Self::Unknown(Default::default())
}
}
impl serde::Serialize for MetadataQueryResultItem {
fn serialize<S: serde::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
match self {
Self::File(inner) => inner.serialize(serializer),
Self::Folder(inner) => inner.serialize(serializer),
Self::Unknown(inner) => inner.serialize(serializer),
}
}
}
impl<'de> serde::Deserialize<'de> for MetadataQueryResultItem {
fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
let value = serde_json::Value::deserialize(deserializer)?;
let tag = value
.get("type")
.and_then(serde_json::Value::as_str)
.map(str::to_owned);
match tag.as_deref() {
Some("file") => Ok(Self::File(
serde_json::from_value(value).map_err(serde::de::Error::custom)?,
)),
Some("folder") => Ok(Self::Folder(
serde_json::from_value(value).map_err(serde::de::Error::custom)?,
)),
_ => Ok(Self::Unknown(value)),
}
}
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct MetadataQueryResults {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub entries: Option<Vec<MetadataQueryResultItem>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub limit: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub next_marker: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct Metadatas {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub entries: Option<Vec<Metadata>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub limit: Option<i64>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct MetadataTaxonomies {
#[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<MetadataTaxonomy>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct MetadataTaxonomy {
pub id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub key: Option<String>,
#[serde(rename = "displayName")]
pub display_name: String,
pub namespace: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub levels: Option<Vec<MetadataTaxonomyLevel>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct MetadataTaxonomyAncestor {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: 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 level: Option<i64>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct MetadataTaxonomyLevel {
#[serde(
rename = "displayName",
default,
skip_serializing_if = "Option::is_none"
)]
pub display_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub level: Option<i64>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct MetadataTaxonomyLevels {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub entries: Option<Vec<MetadataTaxonomyLevel>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct MetadataTaxonomyNode {
pub id: String,
#[serde(rename = "displayName")]
pub display_name: String,
pub level: i64,
#[serde(rename = "parentId", default, skip_serializing_if = "Option::is_none")]
pub parent_id: Option<String>,
#[serde(rename = "nodePath", default, skip_serializing_if = "Option::is_none")]
pub node_path: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ancestors: Option<Vec<MetadataTaxonomyAncestor>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct MetadataTaxonomyNodes {
#[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<MetadataTaxonomyNode>>,
}
#[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, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct OAuth2Error {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub error: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub error_description: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct Outcome {
pub id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub collaborators: Option<CollaboratorVariable>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub completion_rule: Option<CompletionRuleVariable>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub file_collaborator_role: Option<RoleVariable>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub task_collaborators: Option<CollaboratorVariable>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub role: Option<RoleVariable>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct PostOAuth2Revoke {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub client_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub client_secret: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub token: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct PostOAuth2Token {
pub grant_type: PostOAuth2TokenGrantType,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub client_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub client_secret: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub code: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub refresh_token: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub assertion: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub subject_token: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub subject_token_type: Option<AccessTokenIssuedTokenType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub actor_token: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub actor_token_type: Option<PostOAuth2TokenActorTokenType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub scope: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub resource: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub box_subject_type: Option<PostOAuth2TokenBoxSubjectType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub box_subject_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub box_shared_link: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct PostOAuth2TokenRefreshAccessToken {
pub grant_type: PostOAuth2TokenRefreshAccessTokenGrantType,
pub client_id: String,
pub client_secret: String,
pub refresh_token: String,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct RealtimeServer {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub url: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ttl: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub max_retries: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub retry_timeout: Option<i64>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct RealtimeServers {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub chunk_size: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub entries: Option<Vec<RealtimeServer>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct RecentItem {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub item: Option<RecentItemResource>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub interaction_type: Option<RecentItemInteractionType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub interacted_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub interaction_shared_link: Option<String>,
}
#[derive(Clone, Debug, PartialEq)]
pub enum RecentItemResource {
File(FileFull),
Folder(FolderFull),
WebLink(WebLink),
Unknown(serde_json::Value),
}
impl Default for RecentItemResource {
fn default() -> Self {
Self::Unknown(Default::default())
}
}
impl serde::Serialize for RecentItemResource {
fn serialize<S: serde::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
match self {
Self::File(inner) => inner.serialize(serializer),
Self::Folder(inner) => inner.serialize(serializer),
Self::WebLink(inner) => inner.serialize(serializer),
Self::Unknown(inner) => inner.serialize(serializer),
}
}
}
impl<'de> serde::Deserialize<'de> for RecentItemResource {
fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
let value = serde_json::Value::deserialize(deserializer)?;
let tag = value
.get("type")
.and_then(serde_json::Value::as_str)
.map(str::to_owned);
match tag.as_deref() {
Some("file") => Ok(Self::File(
serde_json::from_value(value).map_err(serde::de::Error::custom)?,
)),
Some("folder") => Ok(Self::Folder(
serde_json::from_value(value).map_err(serde::de::Error::custom)?,
)),
Some("web_link") => Ok(Self::WebLink(
serde_json::from_value(value).map_err(serde::de::Error::custom)?,
)),
_ => Ok(Self::Unknown(value)),
}
}
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct RecentItems {
#[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<RecentItem>>,
}
#[derive(Clone, Debug, PartialEq)]
pub enum Resource {
Folder(FolderMini),
File(FileMini),
Unknown(serde_json::Value),
}
impl Default for Resource {
fn default() -> Self {
Self::Unknown(Default::default())
}
}
impl serde::Serialize for Resource {
fn serialize<S: serde::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
match self {
Self::Folder(inner) => inner.serialize(serializer),
Self::File(inner) => inner.serialize(serializer),
Self::Unknown(inner) => inner.serialize(serializer),
}
}
}
impl<'de> serde::Deserialize<'de> for Resource {
fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
let value = serde_json::Value::deserialize(deserializer)?;
let tag = value
.get("type")
.and_then(serde_json::Value::as_str)
.map(str::to_owned);
match tag.as_deref() {
Some("folder") => Ok(Self::Folder(
serde_json::from_value(value).map_err(serde::de::Error::custom)?,
)),
Some("file") => Ok(Self::File(
serde_json::from_value(value).map_err(serde::de::Error::custom)?,
)),
_ => Ok(Self::Unknown(value)),
}
}
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct ResourceScope {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub scope: Option<ResourceScopeScope>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub object: Option<Resource>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct RetentionPolicies {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub entries: Option<Vec<RetentionPolicy>>,
#[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>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct RetentionPolicy {
pub id: String,
pub r#type: RetentionPolicyType,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub policy_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub retention_length: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub disposition_action: Option<RetentionPolicyDispositionAction>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub max_extension_length: Option<RetentionPolicyMaxExtensionLengthResponse>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub policy_type: Option<RetentionPolicyPolicyType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub retention_type: Option<RetentionPolicyRetentionType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status: Option<RetentionPolicyStatus>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_by: Option<UserMini>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub modified_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub can_owner_extend_retention: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub are_owners_notified: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub custom_notification_recipients: Option<Vec<UserMini>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub assignment_counts: Option<RetentionPolicyAssignmentCounts>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct RetentionPolicyBase {
pub id: String,
pub r#type: RetentionPolicyType,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct RetentionPolicyMini {
pub id: String,
pub r#type: RetentionPolicyType,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub policy_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub retention_length: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub disposition_action: Option<RetentionPolicyDispositionAction>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub max_extension_length: Option<RetentionPolicyMaxExtensionLengthResponse>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct RetentionPolicyAssignment {
pub id: String,
pub r#type: RetentionPolicyAssignmentType,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub retention_policy: Option<RetentionPolicyMini>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub assigned_to: Option<RetentionPolicyAssignmentAssignedTo>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub filter_fields: Option<Option<Vec<RetentionPolicyAssignmentFilterFields>>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub assigned_by: Option<UserMini>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub assigned_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub start_date_field: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct RetentionPolicyAssignments {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub entries: Option<Vec<RetentionPolicyAssignment>>,
#[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>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct RetentionPolicyMaxExtensionLengthRequest(pub serde_json::Value);
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct RetentionPolicyMaxExtensionLengthResponse(pub serde_json::Value);
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct RoleVariable {
pub r#type: CollaboratorVariableType,
pub variable_type: RoleVariableVariableType,
pub variable_value: FileFullAllowedInviteeRoles,
}
#[derive(Clone, Debug, PartialEq)]
pub enum SearchResultItem {
File(FileFull),
Folder(FolderFull),
WebLink(WebLink),
Unknown(serde_json::Value),
}
impl Default for SearchResultItem {
fn default() -> Self {
Self::Unknown(Default::default())
}
}
impl serde::Serialize for SearchResultItem {
fn serialize<S: serde::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
match self {
Self::File(inner) => inner.serialize(serializer),
Self::Folder(inner) => inner.serialize(serializer),
Self::WebLink(inner) => inner.serialize(serializer),
Self::Unknown(inner) => inner.serialize(serializer),
}
}
}
impl<'de> serde::Deserialize<'de> for SearchResultItem {
fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
let value = serde_json::Value::deserialize(deserializer)?;
let tag = value
.get("type")
.and_then(serde_json::Value::as_str)
.map(str::to_owned);
match tag.as_deref() {
Some("file") => Ok(Self::File(
serde_json::from_value(value).map_err(serde::de::Error::custom)?,
)),
Some("folder") => Ok(Self::Folder(
serde_json::from_value(value).map_err(serde::de::Error::custom)?,
)),
Some("web_link") => Ok(Self::WebLink(
serde_json::from_value(value).map_err(serde::de::Error::custom)?,
)),
_ => Ok(Self::Unknown(value)),
}
}
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct SearchResults {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub total_count: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub limit: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub offset: Option<i64>,
pub r#type: SearchResultsType,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub entries: Option<Vec<SearchResultItem>>,
}
#[derive(Clone, Debug, PartialEq)]
pub enum SearchResultsResponse {
SearchResultsItems(SearchResults),
SearchResultsWithSharedLinks(SearchResultsWithSharedLinks),
Unknown(serde_json::Value),
}
impl Default for SearchResultsResponse {
fn default() -> Self {
Self::Unknown(Default::default())
}
}
impl serde::Serialize for SearchResultsResponse {
fn serialize<S: serde::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
match self {
Self::SearchResultsItems(inner) => inner.serialize(serializer),
Self::SearchResultsWithSharedLinks(inner) => inner.serialize(serializer),
Self::Unknown(inner) => inner.serialize(serializer),
}
}
}
impl<'de> serde::Deserialize<'de> for SearchResultsResponse {
fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
let value = serde_json::Value::deserialize(deserializer)?;
let tag = value
.get("type")
.and_then(serde_json::Value::as_str)
.map(str::to_owned);
match tag.as_deref() {
Some("search_results_items") => Ok(Self::SearchResultsItems(
serde_json::from_value(value).map_err(serde::de::Error::custom)?,
)),
Some("search_results_with_shared_links") => Ok(Self::SearchResultsWithSharedLinks(
serde_json::from_value(value).map_err(serde::de::Error::custom)?,
)),
_ => Ok(Self::Unknown(value)),
}
}
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct SearchResultsWithSharedLinks {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub total_count: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub limit: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub offset: Option<i64>,
pub r#type: SearchResultsWithSharedLinksType,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub entries: Option<Vec<SearchResultWithSharedLink>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct SearchResultWithSharedLink {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub accessible_via_shared_link: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub item: Option<SearchResultWithSharedLinkItem>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<String>,
}
#[derive(Clone, Debug, PartialEq)]
pub enum SearchResultWithSharedLinkItem {
File(FileFull),
Folder(FolderFull),
WebLink(WebLink),
Unknown(serde_json::Value),
}
impl Default for SearchResultWithSharedLinkItem {
fn default() -> Self {
Self::Unknown(Default::default())
}
}
impl serde::Serialize for SearchResultWithSharedLinkItem {
fn serialize<S: serde::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
match self {
Self::File(inner) => inner.serialize(serializer),
Self::Folder(inner) => inner.serialize(serializer),
Self::WebLink(inner) => inner.serialize(serializer),
Self::Unknown(inner) => inner.serialize(serializer),
}
}
}
impl<'de> serde::Deserialize<'de> for SearchResultWithSharedLinkItem {
fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
let value = serde_json::Value::deserialize(deserializer)?;
let tag = value
.get("type")
.and_then(serde_json::Value::as_str)
.map(str::to_owned);
match tag.as_deref() {
Some("file") => Ok(Self::File(
serde_json::from_value(value).map_err(serde::de::Error::custom)?,
)),
Some("folder") => Ok(Self::Folder(
serde_json::from_value(value).map_err(serde::de::Error::custom)?,
)),
Some("web_link") => Ok(Self::WebLink(
serde_json::from_value(value).map_err(serde::de::Error::custom)?,
)),
_ => Ok(Self::Unknown(value)),
}
}
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct SessionTerminationMessage {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct ShieldInformationBarrier {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<ShieldInformationBarrierType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub enterprise: Option<EnterpriseBase>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status: Option<ShieldInformationBarrierStatus>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_by: Option<UserBase>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub updated_by: Option<UserBase>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub enabled_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub enabled_by: Option<UserBase>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct ShieldInformationBarrierBase {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<ShieldInformationBarrierType>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct ShieldInformationBarrierReference {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub shield_information_barrier: Option<ShieldInformationBarrierBase>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct ShieldInformationBarrierReport {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<ShieldInformationBarrierReportType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub shield_information_barrier: Option<ShieldInformationBarrierReference>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status: Option<ShieldInformationBarrierReportStatus>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub details: Option<ShieldInformationBarrierReportDetails>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_by: Option<UserBase>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct ShieldInformationBarrierReportBase {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<ShieldInformationBarrierReportType>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct ShieldInformationBarrierReportDetails {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub details: Option<ShieldInformationBarrierReportDetailsDetails>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct ShieldInformationBarrierReports {
#[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")]
pub entries: Option<Vec<ShieldInformationBarrierReport>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct ShieldInformationBarriers {
#[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")]
pub entries: Option<Vec<ShieldInformationBarrier>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct ShieldInformationBarrierSegment {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<ShieldInformationBarrierSegmentType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub shield_information_barrier: Option<ShieldInformationBarrierBase>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_by: Option<UserBase>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub updated_by: Option<UserBase>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct ShieldInformationBarrierSegmentMember {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<ShieldInformationBarrierSegmentMemberType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub user: Option<UserBase>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub shield_information_barrier: Option<ShieldInformationBarrierBase>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub shield_information_barrier_segment:
Option<ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegment>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_by: Option<UserBase>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub updated_by: Option<UserBase>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct ShieldInformationBarrierSegmentMemberBase {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<ShieldInformationBarrierSegmentMemberType>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct ShieldInformationBarrierSegmentMemberMini {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<ShieldInformationBarrierSegmentMemberType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub user: Option<UserBase>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct ShieldInformationBarrierSegmentMembers {
#[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")]
pub entries: Option<Vec<ShieldInformationBarrierSegmentMember>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct ShieldInformationBarrierSegmentRestriction {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<ShieldInformationBarrierSegmentRestrictionType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
pub shield_information_barrier_segment:
ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegment,
pub restricted_segment: ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegment,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub shield_information_barrier: Option<ShieldInformationBarrierBase>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_by: Option<UserBase>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub updated_by: Option<UserBase>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct ShieldInformationBarrierSegmentRestrictionBase {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<ShieldInformationBarrierSegmentRestrictionType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct ShieldInformationBarrierSegmentRestrictionMini {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<ShieldInformationBarrierSegmentRestrictionType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
pub shield_information_barrier_segment:
ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegment,
pub restricted_segment: ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegment,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct ShieldInformationBarrierSegmentRestrictions {
#[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")]
pub entries: Option<Vec<ShieldInformationBarrierSegmentRestriction>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct ShieldInformationBarrierSegments {
#[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")]
pub entries: Option<Vec<ShieldInformationBarrierSegment>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct SignRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_document_preparation_needed: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub redirect_url: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub declined_redirect_url: Option<Option<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub are_text_signatures_enabled: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub email_subject: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub email_message: Option<Option<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub are_reminders_enabled: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub prefill_tags: Option<Vec<SignRequestPrefillTag>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub days_valid: Option<Option<i64>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub external_id: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub template_id: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub external_system_name: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub request_flow: Option<Option<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<SignRequestType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub source_files: Option<Vec<FileBase>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub signers: Option<Vec<SignRequestSigner>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub signature_color: Option<Option<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub prepare_url: Option<Option<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub signing_log: Option<FileMini>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status: Option<SignRequestStatus>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub sign_files: Option<SignRequestSignFiles>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub auto_expire_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub parent_folder: Option<FolderMini>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub collaborator_level: Option<Option<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub short_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub finished_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub error_code: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub sender_email: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub sender_id: Option<Option<i64>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct SignRequestBase {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_document_preparation_needed: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub redirect_url: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub declined_redirect_url: Option<Option<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub are_text_signatures_enabled: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub email_subject: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub email_message: Option<Option<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub are_reminders_enabled: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub prefill_tags: Option<Vec<SignRequestPrefillTag>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub days_valid: Option<Option<i64>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub external_id: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub template_id: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub external_system_name: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub request_flow: Option<Option<String>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct SignRequestCancelRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub reason: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct SignRequestCreateRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_document_preparation_needed: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub redirect_url: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub declined_redirect_url: Option<Option<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub are_text_signatures_enabled: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub email_subject: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub email_message: Option<Option<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub are_reminders_enabled: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub prefill_tags: Option<Vec<SignRequestPrefillTag>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub days_valid: Option<Option<i64>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub external_id: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub template_id: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub external_system_name: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub request_flow: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub source_files: Option<Option<Vec<FileBase>>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub signature_color: Option<Option<SignRequestCreateRequestSignatureColor>>,
pub signers: Vec<SignRequestCreateSigner>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub parent_folder: Option<FolderMini>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct SignRequestCreateSigner {
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub email: Option<Option<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub role: Option<SignRequestCreateSignerRole>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_in_person: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub order: Option<i64>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub embed_url_external_user_id: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub redirect_url: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub declined_redirect_url: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub login_required: Option<Option<bool>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub verification_phone_number: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub password: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub signer_group_id: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub suppress_notifications: Option<Option<bool>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub language: Option<Option<String>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct SignRequestPrefillTag {
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub document_tag_id: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub text_value: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub checkbox_value: Option<Option<bool>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub date_value: Option<Option<chrono::NaiveDate>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct SignRequests {
#[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")]
pub entries: Option<Vec<SignRequest>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct SignRequestSigner {
pub email: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub role: Option<SignRequestCreateSignerRole>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_in_person: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub order: Option<i64>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub embed_url_external_user_id: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub redirect_url: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub declined_redirect_url: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub login_required: Option<Option<bool>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub verification_phone_number: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub password: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub signer_group_id: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub suppress_notifications: Option<Option<bool>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub language: Option<Option<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub has_viewed_document: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub signer_decision: Option<Option<SignRequestSignerSignerDecision>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub inputs: Option<Vec<SignRequestSignerInput>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub embed_url: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub iframeable_embed_url: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub attachments: Option<Option<Vec<SignRequestSignerAttachment>>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct SignRequestSignerAttachment {
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub id: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub name: Option<Option<String>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct SignRequestSignerInput {
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub document_tag_id: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub text_value: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub checkbox_value: Option<Option<bool>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub date_value: Option<Option<chrono::NaiveDate>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<SignRequestSignerInputType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub content_type: Option<SignRequestSignerInputContentType>,
pub page_index: i64,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub read_only: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub validation: Option<SignRequestSignerInputValidation2>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub reason: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub is_validated: Option<Option<bool>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct SignRequestSignerInputCustomValidation {
pub validation_type: SignRequestSignerInputCustomValidationValidationType,
pub custom_regex: Option<String>,
pub custom_error_message: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct SignRequestSignerInputDateAsiaValidation {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub validation_type: Option<SignRequestSignerInputDateAsiaValidationValidationType>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct SignRequestSignerInputDateEUValidation {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub validation_type: Option<SignRequestSignerInputDateEUValidationValidationType>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct SignRequestSignerInputDateISOValidation {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub validation_type: Option<SignRequestSignerInputDateISOValidationValidationType>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct SignRequestSignerInputDateUSValidation {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub validation_type: Option<SignRequestSignerInputDateUSValidationValidationType>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct SignRequestSignerInputEmailValidation {
pub validation_type: SignRequestSignerInputEmailValidationValidationType,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct SignRequestSignerInputNumberWithCommaValidation {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub validation_type: Option<SignRequestSignerInputNumberWithCommaValidationValidationType>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct SignRequestSignerInputNumberWithPeriodValidation {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub validation_type: Option<SignRequestSignerInputNumberWithPeriodValidationValidationType>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct SignRequestSignerInputSSNValidation {
pub validation_type: SignRequestSignerInputSSNValidationValidationType,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct SignRequestSignerInputValidation(pub serde_json::Value);
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct SignRequestSignerInputZIP4Validation {
pub validation_type: SignRequestSignerInputZIP4ValidationValidationType,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct SignRequestSignerInputZIPValidation {
pub validation_type: SignRequestSignerInputZIPValidationValidationType,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct SignTemplate {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<SignTemplateType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub name: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub email_subject: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub email_message: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub days_valid: Option<Option<i64>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub parent_folder: Option<FolderMini>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub source_files: Option<Vec<FileMini>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub are_fields_locked: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub are_options_locked: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub are_recipients_locked: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub are_email_settings_locked: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub are_files_locked: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub signers: Option<Vec<TemplateSigner>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub additional_info: Option<SignTemplateAdditionalInfo>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub ready_sign_link: Option<Option<SignTemplateReadySignLink>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub custom_branding: Option<Option<SignTemplateCustomBranding>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub request_flow: Option<Option<String>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct SignTemplates {
#[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<SignTemplate>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct SkillCard(pub serde_json::Value);
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct SkillCardsMetadata {
#[serde(rename = "$canEdit", default, skip_serializing_if = "Option::is_none")]
pub can_edit: Option<bool>,
#[serde(rename = "$id", default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(rename = "$parent", default, skip_serializing_if = "Option::is_none")]
pub parent: Option<String>,
#[serde(rename = "$scope", default, skip_serializing_if = "Option::is_none")]
pub scope: Option<String>,
#[serde(rename = "$template", default, skip_serializing_if = "Option::is_none")]
pub template: Option<String>,
#[serde(rename = "$type", default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<String>,
#[serde(
rename = "$typeVersion",
default,
skip_serializing_if = "Option::is_none"
)]
pub type_version: Option<i64>,
#[serde(rename = "$version", default, skip_serializing_if = "Option::is_none")]
pub version: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub cards: Option<Vec<SkillCard>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct StatusSkillCard {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<chrono::DateTime<chrono::Utc>>,
pub r#type: KeywordSkillCardType,
pub skill_card_type: StatusSkillCardSkillCardType,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub skill_card_title: Option<KeywordSkillCardSkillCardTitle>,
pub status: StatusSkillCardStatus,
pub skill: KeywordSkillCardSkill,
pub invocation: KeywordSkillCardInvocation,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct StoragePolicies {
#[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<StoragePolicy>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct StoragePolicy {
pub id: String,
pub r#type: StoragePolicyType,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct StoragePolicyMini {
pub id: String,
pub r#type: StoragePolicyType,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct StoragePolicyAssignment {
pub id: String,
pub r#type: StoragePolicyAssignmentType,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub storage_policy: Option<StoragePolicyMini>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub assigned_to: Option<CommentItem>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct StoragePolicyAssignments {
#[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<StoragePolicyAssignment>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct Task {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<TaskType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub item: Option<FileMini>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub due_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub action: Option<TaskAction>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub task_assignment_collection: Option<TaskAssignments>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_completed: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_by: Option<UserMini>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub completion_rule: Option<TaskCompletionRule>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct TaskAssignment {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<TaskAssignmentType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub item: Option<FileMini>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub assigned_to: Option<UserMini>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub completed_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub assigned_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub reminded_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub resolution_state: Option<TaskAssignmentResolutionState>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub assigned_by: Option<UserMini>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct TaskAssignments {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub total_count: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub entries: Option<Vec<TaskAssignment>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct Tasks {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub total_count: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub entries: Option<Vec<Task>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct TemplateSigner {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub inputs: Option<Vec<TemplateSignerInput>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub email: Option<Option<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub role: Option<SignRequestCreateSignerRole>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_in_person: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub order: Option<i64>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub signer_group_id: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub label: Option<Option<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub public_id: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub is_password_required: Option<Option<bool>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub is_phone_number_required: Option<Option<bool>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub login_required: Option<Option<bool>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct TemplateSignerInput {
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub document_tag_id: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub text_value: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub checkbox_value: Option<Option<bool>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub date_value: Option<Option<chrono::NaiveDate>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<TemplateSignerInputType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub content_type: Option<SignRequestSignerInputContentType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_required: Option<bool>,
pub page_index: i64,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub document_id: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub dropdown_choices: Option<Option<Vec<String>>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub group_id: Option<Option<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub coordinates: Option<TemplateSignerInputCoordinates>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub dimensions: Option<TemplateSignerInputDimensions>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub label: Option<Option<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub read_only: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub validation: Option<SignRequestSignerInputValidation2>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct TermsOfService {
pub id: String,
pub r#type: TermsOfServiceType,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status: Option<TermsOfServiceStatus>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub enterprise: Option<CollaborationAllowlistEntryEnterprise>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tos_type: Option<TermsOfServiceTosType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub text: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub modified_at: Option<chrono::DateTime<chrono::Utc>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct TermsOfServiceBase {
pub id: String,
pub r#type: TermsOfServiceType,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct TermsOfServices {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub total_count: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub entries: Option<Vec<TermsOfService>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct TermsOfServiceUserStatus {
pub id: String,
pub r#type: TermsOfServiceUserStatusType,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tos: Option<TermsOfServiceBase>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub user: Option<UserMini>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_accepted: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub modified_at: Option<chrono::DateTime<chrono::Utc>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct TermsOfServiceUserStatuses {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub total_count: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub entries: Option<Vec<TermsOfServiceUserStatus>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct TimelineSkillCard {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<chrono::DateTime<chrono::Utc>>,
pub r#type: KeywordSkillCardType,
pub skill_card_type: TimelineSkillCardSkillCardType,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub skill_card_title: Option<KeywordSkillCardSkillCardTitle>,
pub skill: KeywordSkillCardSkill,
pub invocation: KeywordSkillCardInvocation,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub duration: Option<i64>,
pub entries: Vec<TimelineSkillCardEntries>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct TrackingCode {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<TrackingCodeType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub value: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct TranscriptSkillCard {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<chrono::DateTime<chrono::Utc>>,
pub r#type: KeywordSkillCardType,
pub skill_card_type: TranscriptSkillCardSkillCardType,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub skill_card_title: Option<KeywordSkillCardSkillCardTitle>,
pub skill: KeywordSkillCardSkill,
pub invocation: KeywordSkillCardInvocation,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub duration: Option<i64>,
pub entries: Vec<TranscriptSkillCardEntries>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct TrashFile {
pub id: String,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub etag: Option<Option<String>>,
pub r#type: AiCitationType,
pub sequence_id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
pub sha1: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub file_version: Option<FileVersionMini>,
pub description: String,
pub size: i64,
pub path_collection: TrashFilePathCollection,
pub created_at: chrono::DateTime<chrono::Utc>,
pub modified_at: chrono::DateTime<chrono::Utc>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub trashed_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub purged_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub content_created_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub content_modified_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_by: Option<UserMini>,
pub modified_by: UserMini,
pub owned_by: UserMini,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub shared_link: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub parent: Option<Option<FolderMini>>,
pub item_status: FileItemStatus,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct TrashFileRestored {
pub id: String,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub etag: Option<Option<String>>,
pub r#type: AiCitationType,
pub sequence_id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
pub sha1: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub file_version: Option<FileVersionMini>,
pub description: String,
pub size: i64,
pub path_collection: FilePathCollection,
pub created_at: chrono::DateTime<chrono::Utc>,
pub modified_at: chrono::DateTime<chrono::Utc>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub trashed_at: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub purged_at: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub content_created_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub content_modified_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_by: Option<UserMini>,
pub modified_by: UserMini,
pub owned_by: UserMini,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub shared_link: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub parent: Option<Option<FolderMini>>,
pub item_status: FileItemStatus,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct TrashFolder {
pub id: String,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub etag: Option<Option<String>>,
pub r#type: FolderType,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub sequence_id: Option<String>,
pub name: String,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub created_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub modified_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
pub description: String,
pub size: i64,
pub path_collection: TrashFilePathCollection,
pub created_by: UserMini,
pub modified_by: UserMini,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub trashed_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub purged_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub content_created_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub content_modified_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
pub owned_by: UserMini,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub shared_link: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub folder_upload_email: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub parent: Option<Option<FolderMini>>,
pub item_status: FileItemStatus,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct TrashFolderRestored {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub etag: Option<Option<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<FolderType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub sequence_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub created_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub modified_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub size: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub path_collection: Option<FilePathCollection>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_by: Option<UserMini>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub modified_by: Option<UserMini>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub trashed_at: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub purged_at: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub content_created_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub content_modified_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub owned_by: Option<UserMini>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub shared_link: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub folder_upload_email: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub parent: Option<Option<FolderMini>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub item_status: Option<FileItemStatus>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct TrashWebLink {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<TrashWebLinkType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub sequence_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub etag: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub url: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub parent: Option<FolderMini>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub path_collection: Option<TrashFilePathCollection>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub modified_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub trashed_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub purged_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_by: Option<UserMini>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub modified_by: Option<UserMini>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub owned_by: Option<UserMini>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub shared_link: Option<Option<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub item_status: Option<FileItemStatus>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct TrashWebLinkRestored {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<TrashWebLinkType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
pub sequence_id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub etag: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub url: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub parent: Option<FolderMini>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
pub path_collection: FilePathCollection,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub modified_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub trashed_at: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub purged_at: Option<Option<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_by: Option<UserMini>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub modified_by: Option<UserMini>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub owned_by: Option<UserMini>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub shared_link: Option<Option<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub item_status: Option<FileItemStatus>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct UploadedPart {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub part: Option<UploadPart>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct UploadPart {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub part_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub offset: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub size: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub sha1: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct UploadPartMini {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub part_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub offset: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub size: Option<i64>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct UploadParts {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub total_count: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub limit: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub offset: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub order: Option<Vec<CollectionsOrder>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub entries: Option<Vec<UploadPart>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct UploadSession {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<UploadSessionType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub session_expires_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub part_size: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub total_parts: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub num_parts_processed: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub session_endpoints: Option<UploadSessionSessionEndpoints>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct UploadUrl {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub upload_url: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub upload_token: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct User {
pub id: String,
pub r#type: VariableValueType,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub login: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub modified_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub language: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub timezone: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub space_amount: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub space_used: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub max_upload_size: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status: Option<UserStatus>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub job_title: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub phone: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub address: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub avatar_url: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub notification_email: Option<Option<UserNotificationEmail>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct UserBase {
pub id: String,
pub r#type: VariableValueType,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct UserCollaborations {
pub id: String,
pub r#type: VariableValueType,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub login: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_active: Option<bool>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct UserFull {
pub id: String,
pub r#type: VariableValueType,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub login: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub modified_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub language: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub timezone: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub space_amount: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub space_used: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub max_upload_size: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status: Option<UserStatus>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub job_title: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub phone: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub address: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub avatar_url: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub notification_email: Option<Option<UserNotificationEmail>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub role: Option<UserFullRole>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tracking_codes: Option<Vec<TrackingCode>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub can_see_managed_users: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_sync_enabled: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_external_collab_restricted: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_exempt_from_device_limits: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_exempt_from_login_verification: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub enterprise: Option<CollaborationAllowlistEntryEnterprise>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub my_tags: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub hostname: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_platform_access_only: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub external_app_user_id: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct UserMini {
pub id: String,
pub r#type: VariableValueType,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub login: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct UserAvatar {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub pic_urls: Option<UserAvatarPicUrls>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct UserIntegrationMappings {
pub id: String,
pub r#type: VariableValueType,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub login: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct Users {
#[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 total_count: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub offset: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub order: Option<Vec<CollectionsOrder>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub entries: Option<Vec<UserFull>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct Watermark {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub watermark: Option<WatermarkWatermark>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct Webhook {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<WebhookType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub target: Option<WebhookTarget>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_by: Option<UserMini>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub address: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub triggers: Option<Vec<WebhookTriggers>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct WebhookMini {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<WebhookType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub target: Option<WebhookTarget>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct Webhooks {
#[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<WebhookMini>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct WebLink {
pub id: String,
pub r#type: TrashWebLinkType,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub etag: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub url: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub sequence_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub parent: Option<FolderMini>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub path_collection: Option<FilePathCollection>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub modified_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub trashed_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub purged_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_by: Option<UserMini>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub modified_by: Option<UserMini>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub owned_by: Option<UserMini>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub shared_link: Option<Option<FileSharedLink>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub item_status: Option<FileItemStatus>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct WebLinkBase {
pub id: String,
pub r#type: TrashWebLinkType,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub etag: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct WebLinkMini {
pub id: String,
pub r#type: TrashWebLinkType,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub etag: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub url: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub sequence_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct Workflow {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<WorkflowType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_enabled: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub flows: Option<Vec<WorkflowFlows>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct WorkflowMini {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<WorkflowType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_enabled: Option<bool>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct Workflows {
#[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<Workflow>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct ZipDownload {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub download_url: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status_url: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub expires_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name_conflicts: Option<Vec<Vec<ZipDownloadNameConflicts>>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct ZipDownloadRequest {
pub items: Vec<ZipDownloadRequestItems>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub download_file_name: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct ZipDownloadStatus {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub total_file_count: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub downloaded_file_count: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub skipped_file_count: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub skipped_folder_count: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub state: Option<ZipDownloadStatusState>,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct AccessTokenTokenType(pub String);
impl AccessTokenTokenType {
pub const BEARER: &'static str = "bearer";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct AccessTokenIssuedTokenType(pub String);
impl AccessTokenIssuedTokenType {
pub const URN_IETF_PARAMS_OAUTH_TOKEN_TYPE_ACCESS_TOKEN: &'static str =
"urn:ietf:params:oauth:token-type:access_token";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct AiAgentAskType(pub String);
impl AiAgentAskType {
pub const AI_AGENT_ASK: &'static str = "ai_agent_ask";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct EmbeddingsStrategy {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub num_tokens_per_chunk: Option<i64>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct AiAgentBasicGenToolEmbeddings {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub model: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub strategy: Option<EmbeddingsStrategy>,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct AiAgentExtractType(pub String);
impl AiAgentExtractType {
pub const AI_AGENT_EXTRACT: &'static str = "ai_agent_extract";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct AiAgentExtractStructuredType(pub String);
impl AiAgentExtractStructuredType {
pub const AI_AGENT_EXTRACT_STRUCTURED: &'static str = "ai_agent_extract_structured";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct AiAgentInfoModels {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub provider: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub supported_purpose: Option<String>,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct AiAgentReferenceType(pub String);
impl AiAgentReferenceType {
pub const AI_AGENT_ID: &'static str = "ai_agent_id";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct AiAgentTextGenType(pub String);
impl AiAgentTextGenType {
pub const AI_AGENT_TEXT_GEN: &'static str = "ai_agent_text_gen";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct AiAskMode(pub String);
impl AiAskMode {
pub const MULTIPLE_ITEM_QA: &'static str = "multiple_item_qa";
pub const SINGLE_ITEM_QA: &'static str = "single_item_qa";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct AiCitationType(pub String);
impl AiCitationType {
pub const FILE: &'static str = "file";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct MetadataTemplateType(pub String);
impl MetadataTemplateType {
pub const METADATA_TEMPLATE: &'static str = "metadata_template";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct AiExtractStructuredMetadataTemplate {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub template_key: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<MetadataTemplateType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub scope: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct FieldsOptions {
pub key: String,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct AiExtractStructuredFields {
pub key: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: 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 prompt: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub options: Option<Vec<FieldsOptions>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub fields: Option<Vec<AiExtractSubField>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub taxonomy_key: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub options_rules: Option<AiOptionsRules>,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct AiItemAskType(pub String);
impl AiItemAskType {
pub const FILE: &'static str = "file";
pub const HUBS: &'static str = "hubs";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct AiLlmEndpointParamsAWSType(pub String);
impl AiLlmEndpointParamsAWSType {
pub const AWS_PARAMS: &'static str = "aws_params";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct AiLlmEndpointParamsGoogleType(pub String);
impl AiLlmEndpointParamsGoogleType {
pub const GOOGLE_PARAMS: &'static str = "google_params";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct AiLlmEndpointParamsIBMType(pub String);
impl AiLlmEndpointParamsIBMType {
pub const IBM_PARAMS: &'static str = "ibm_params";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct AiLlmEndpointParamsOpenAiType(pub String);
impl AiLlmEndpointParamsOpenAiType {
pub const OPENAI_PARAMS: &'static str = "openai_params";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct AiSingleAgentResponseType(pub String);
impl AiSingleAgentResponseType {
pub const AI_AGENT: &'static str = "ai_agent";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct AiTaxonomyReferenceType(pub String);
impl AiTaxonomyReferenceType {
pub const TAXONOMY: &'static str = "taxonomy";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct AiTextGenItems {
pub id: String,
pub r#type: AiCitationType,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub content: Option<String>,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct AppItemType(pub String);
impl AppItemType {
pub const APP_ITEM: &'static str = "app_item";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct AppItemAssociationType(pub String);
impl AppItemAssociationType {
pub const APP_ITEM_ASSOCIATION: &'static str = "app_item_association";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct ClassificationTemplate2(pub String);
impl ClassificationTemplate2 {
pub const SECURITYCLASSIFICATION_6VMVOCHWUWO: &'static str =
"securityClassification-6VMVochwUWo";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct ClassificationTemplateDisplayName(pub String);
impl ClassificationTemplateDisplayName {
pub const CLASSIFICATION: &'static str = "Classification";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct FieldsType(pub String);
impl FieldsType {
pub const ENUM: &'static str = "enum";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct FieldsKey(pub String);
impl FieldsKey {
pub const BOX_SECURITY_CLASSIFICATION_KEY: &'static str = "Box__Security__Classification__Key";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct StaticConfigClassification {
#[serde(
rename = "classificationDefinition",
default,
skip_serializing_if = "Option::is_none"
)]
pub classification_definition: Option<String>,
#[serde(rename = "colorID", default, skip_serializing_if = "Option::is_none")]
pub color_id: Option<i64>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct OptionsStaticConfig {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub classification: Option<StaticConfigClassification>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct FieldsOptions2 {
pub id: String,
pub key: String,
#[serde(
rename = "staticConfig",
default,
skip_serializing_if = "Option::is_none"
)]
pub static_config: Option<OptionsStaticConfig>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct ClassificationTemplateFields {
pub id: String,
pub r#type: FieldsType,
pub key: FieldsKey,
#[serde(rename = "displayName")]
pub display_name: ClassificationTemplateDisplayName,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub hidden: Option<bool>,
pub options: Vec<FieldsOptions2>,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct ClientErrorType(pub String);
impl ClientErrorType {
pub const ERROR: &'static str = "error";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct ClientErrorCode(pub String);
impl ClientErrorCode {
pub const CREATED: &'static str = "created";
pub const ACCEPTED: &'static str = "accepted";
pub const NO_CONTENT: &'static str = "no_content";
pub const REDIRECT: &'static str = "redirect";
pub const NOT_MODIFIED: &'static str = "not_modified";
pub const BAD_REQUEST: &'static str = "bad_request";
pub const UNAUTHORIZED: &'static str = "unauthorized";
pub const FORBIDDEN: &'static str = "forbidden";
pub const NOT_FOUND: &'static str = "not_found";
pub const METHOD_NOT_ALLOWED: &'static str = "method_not_allowed";
pub const CONFLICT: &'static str = "conflict";
pub const PRECONDITION_FAILED: &'static str = "precondition_failed";
pub const TOO_MANY_REQUESTS: &'static str = "too_many_requests";
pub const INTERNAL_SERVER_ERROR: &'static str = "internal_server_error";
pub const UNAVAILABLE: &'static str = "unavailable";
pub const ITEM_NAME_INVALID: &'static str = "item_name_invalid";
pub const INSUFFICIENT_SCOPE: &'static str = "insufficient_scope";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct CollaborationType(pub String);
impl CollaborationType {
pub const COLLABORATION: &'static str = "collaboration";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct CollaborationRole(pub String);
impl CollaborationRole {
pub const EDITOR: &'static str = "editor";
pub const VIEWER: &'static str = "viewer";
pub const PREVIEWER: &'static str = "previewer";
pub const UPLOADER: &'static str = "uploader";
pub const PREVIEWER_UPLOADER: &'static str = "previewer uploader";
pub const VIEWER_UPLOADER: &'static str = "viewer uploader";
pub const CO_OWNER: &'static str = "co-owner";
pub const OWNER: &'static str = "owner";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct CollaborationStatus(pub String);
impl CollaborationStatus {
pub const ACCEPTED: &'static str = "accepted";
pub const PENDING: &'static str = "pending";
pub const REJECTED: &'static str = "rejected";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct AcceptanceRequirementsStatusTermsOfServiceRequirement {
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub is_accepted: Option<Option<bool>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub terms_of_service: Option<TermsOfServiceBase>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct AcceptanceRequirementsStatusStrongPasswordRequirement {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub enterprise_has_strong_password_required_for_external_users: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub user_has_strong_password: Option<Option<bool>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct AcceptanceRequirementsStatusTwoFactorAuthenticationRequirement {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub enterprise_has_two_factor_auth_enabled: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub user_has_two_factor_authentication_enabled: Option<Option<bool>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct CollaborationAcceptanceRequirementsStatus {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub terms_of_service_requirement: Option<AcceptanceRequirementsStatusTermsOfServiceRequirement>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub strong_password_requirement: Option<AcceptanceRequirementsStatusStrongPasswordRequirement>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub two_factor_authentication_requirement:
Option<AcceptanceRequirementsStatusTwoFactorAuthenticationRequirement>,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct CollaborationAllowlistEntryType(pub String);
impl CollaborationAllowlistEntryType {
pub const COLLABORATION_WHITELIST_ENTRY: &'static str = "collaboration_whitelist_entry";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct CollaborationAllowlistEntryDirection(pub String);
impl CollaborationAllowlistEntryDirection {
pub const INBOUND: &'static str = "inbound";
pub const OUTBOUND: &'static str = "outbound";
pub const BOTH: &'static str = "both";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct EnterpriseType(pub String);
impl EnterpriseType {
pub const ENTERPRISE: &'static str = "enterprise";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct CollaborationAllowlistEntryEnterprise {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<EnterpriseType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct CollaborationAllowlistExemptTargetType(pub String);
impl CollaborationAllowlistExemptTargetType {
pub const COLLABORATION_WHITELIST_EXEMPT_TARGET: &'static str =
"collaboration_whitelist_exempt_target";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct CollaboratorVariableType(pub String);
impl CollaboratorVariableType {
pub const VARIABLE: &'static str = "variable";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct CollaboratorVariableVariableType(pub String);
impl CollaboratorVariableVariableType {
pub const USER_LIST: &'static str = "user_list";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct VariableValueType(pub String);
impl VariableValueType {
pub const USER: &'static str = "user";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct CollaboratorVariableVariableValue {
pub r#type: VariableValueType,
pub id: String,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct CollectionType(pub String);
impl CollectionType {
pub const COLLECTION: &'static str = "collection";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct CollectionName(pub String);
impl CollectionName {
pub const FAVORITES: &'static str = "Favorites";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct CollectionCollectionType(pub String);
impl CollectionCollectionType {
pub const FAVORITES: &'static str = "favorites";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct OrderDirection(pub String);
impl OrderDirection {
pub const ASC: &'static str = "ASC";
pub const DESC: &'static str = "DESC";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct CollectionsOrder {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub by: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub direction: Option<OrderDirection>,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct CommentType(pub String);
impl CommentType {
pub const COMMENT: &'static str = "comment";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct CommentItem {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<String>,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct CompletionRuleVariableVariableType(pub String);
impl CompletionRuleVariableVariableType {
pub const TASK_COMPLETION_RULE: &'static str = "task_completion_rule";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct CompletionRuleVariableVariableValue(pub String);
impl CompletionRuleVariableVariableValue {
pub const ALL_ASSIGNEES: &'static str = "all_assignees";
pub const ANY_ASSIGNEES: &'static str = "any_assignees";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct ConflictErrorContextInfo {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub conflicts: Option<Vec<FileConflict>>,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct DevicePinnerType(pub String);
impl DevicePinnerType {
pub const DEVICE_PINNER: &'static str = "device_pinner";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct OrderBy(pub String);
impl OrderBy {
pub const ID: &'static str = "id";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct OrderDirection2(pub String);
impl OrderDirection2 {
pub const ASC: &'static str = "asc";
pub const DESC: &'static str = "desc";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct DevicePinnersOrder {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub by: Option<OrderBy>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub direction: Option<OrderDirection2>,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct EmailAliasType(pub String);
impl EmailAliasType {
pub const EMAIL_ALIAS: &'static str = "email_alias";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct EventEventType(pub String);
impl EventEventType {
pub const ACCESS_GRANTED: &'static str = "ACCESS_GRANTED";
pub const ACCESS_REVOKED: &'static str = "ACCESS_REVOKED";
pub const ADD_DEVICE_ASSOCIATION: &'static str = "ADD_DEVICE_ASSOCIATION";
pub const ADD_LOGIN_ACTIVITY_DEVICE: &'static str = "ADD_LOGIN_ACTIVITY_DEVICE";
pub const ADMIN_LOGIN: &'static str = "ADMIN_LOGIN";
pub const ADVANCED_FOLDER_SETTINGS_UPDATE: &'static str = "ADVANCED_FOLDER_SETTINGS_UPDATE";
pub const AI_SECURITY_DETECTION: &'static str = "AI_SECURITY_DETECTION";
pub const ANNOTATIONV2_CREATE: &'static str = "ANNOTATIONV2_CREATE";
pub const ANNOTATIONV2_DELETE: &'static str = "ANNOTATIONV2_DELETE";
pub const ANNOTATIONV2_EDIT: &'static str = "ANNOTATIONV2_EDIT";
pub const APPLICATION_CREATED: &'static str = "APPLICATION_CREATED";
pub const APPLICATION_PUBLIC_KEY_ADDED: &'static str = "APPLICATION_PUBLIC_KEY_ADDED";
pub const APPLICATION_PUBLIC_KEY_DELETED: &'static str = "APPLICATION_PUBLIC_KEY_DELETED";
pub const BOX_AI_USER_FAILED_REQUEST: &'static str = "BOX_AI_USER_FAILED_REQUEST";
pub const BOX_AI_USER_REQUEST: &'static str = "BOX_AI_USER_REQUEST";
pub const CHANGE_ADMIN_ROLE: &'static str = "CHANGE_ADMIN_ROLE";
pub const CHANGE_FOLDER_PERMISSION: &'static str = "CHANGE_FOLDER_PERMISSION";
pub const COLLABORATION_ACCEPT: &'static str = "COLLABORATION_ACCEPT";
pub const COLLABORATION_EXPIRATION: &'static str = "COLLABORATION_EXPIRATION";
pub const COLLABORATION_INVITE: &'static str = "COLLABORATION_INVITE";
pub const COLLABORATION_REMOVE: &'static str = "COLLABORATION_REMOVE";
pub const COLLABORATION_ROLE_CHANGE: &'static str = "COLLABORATION_ROLE_CHANGE";
pub const COLLAB_ADD_COLLABORATOR: &'static str = "COLLAB_ADD_COLLABORATOR";
pub const COLLAB_INVITE_COLLABORATOR: &'static str = "COLLAB_INVITE_COLLABORATOR";
pub const COLLAB_REMOVE_COLLABORATOR: &'static str = "COLLAB_REMOVE_COLLABORATOR";
pub const COLLAB_ROLE_CHANGE: &'static str = "COLLAB_ROLE_CHANGE";
pub const COLLECTION_CREATE: &'static str = "COLLECTION_CREATE";
pub const COLLECTION_DELETE: &'static str = "COLLECTION_DELETE";
pub const COLLECTION_ITEM_CREATE: &'static str = "COLLECTION_ITEM_CREATE";
pub const COLLECTION_ITEM_DELETE: &'static str = "COLLECTION_ITEM_DELETE";
pub const COLLECTION_ITEM_UPDATE: &'static str = "COLLECTION_ITEM_UPDATE";
pub const COLLECTION_UPDATE: &'static str = "COLLECTION_UPDATE";
pub const COMMENT_CREATE: &'static str = "COMMENT_CREATE";
pub const COMMENT_DELETE: &'static str = "COMMENT_DELETE";
pub const COMMENT_EDIT: &'static str = "COMMENT_EDIT";
pub const CONTENT_ACCESS: &'static str = "CONTENT_ACCESS";
pub const CONTENT_RECOVERY_REPORT_CREATE: &'static str = "CONTENT_RECOVERY_REPORT_CREATE";
pub const CONTENT_RECOVERY_REPORT_DELETE: &'static str = "CONTENT_RECOVERY_REPORT_DELETE";
pub const CONTENT_RECOVERY_REPORT_INITIATE: &'static str = "CONTENT_RECOVERY_REPORT_INITIATE";
pub const CONTENT_WORKFLOW_ABNORMAL_DOWNLOAD_ACTIVITY: &'static str =
"CONTENT_WORKFLOW_ABNORMAL_DOWNLOAD_ACTIVITY";
pub const CONTENT_WORKFLOW_AUTOMATION_ADD: &'static str = "CONTENT_WORKFLOW_AUTOMATION_ADD";
pub const CONTENT_WORKFLOW_AUTOMATION_DELETE: &'static str =
"CONTENT_WORKFLOW_AUTOMATION_DELETE";
pub const CONTENT_WORKFLOW_POLICY_ADD: &'static str = "CONTENT_WORKFLOW_POLICY_ADD";
pub const CONTENT_WORKFLOW_SHARING_POLICY_VIOLATION: &'static str =
"CONTENT_WORKFLOW_SHARING_POLICY_VIOLATION";
pub const CONTENT_WORKFLOW_UPLOAD_POLICY_VIOLATION: &'static str =
"CONTENT_WORKFLOW_UPLOAD_POLICY_VIOLATION";
pub const COPY: &'static str = "COPY";
pub const DATA_RETENTION_CREATE_RETENTION: &'static str = "DATA_RETENTION_CREATE_RETENTION";
pub const DATA_RETENTION_REMOVE_RETENTION: &'static str = "DATA_RETENTION_REMOVE_RETENTION";
pub const DELETE: &'static str = "DELETE";
pub const DELETE_USER: &'static str = "DELETE_USER";
pub const DEVICE_TRUST_CHECK_FAILED: &'static str = "DEVICE_TRUST_CHECK_FAILED";
pub const DISABLE_MULTI_FACTOR_AUTH: &'static str = "DISABLE_MULTI_FACTOR_AUTH";
pub const DOWNLOAD: &'static str = "DOWNLOAD";
pub const EDIT: &'static str = "EDIT";
pub const EDIT_USER: &'static str = "EDIT_USER";
pub const EDR_CROWDSTRIKE_ACCESS_ALLOWED_NO_CROWDSTRIKE_DEVICE: &'static str =
"EDR_CROWDSTRIKE_ACCESS_ALLOWED_NO_CROWDSTRIKE_DEVICE";
pub const EDR_CROWDSTRIKE_ACCESS_REVOKED: &'static str = "EDR_CROWDSTRIKE_ACCESS_REVOKED";
pub const EDR_CROWDSTRIKE_BOX_TOOLS_OUTDATED: &'static str =
"EDR_CROWDSTRIKE_BOX_TOOLS_OUTDATED";
pub const EDR_CROWDSTRIKE_DEVICE_DETECTED: &'static str = "EDR_CROWDSTRIKE_DEVICE_DETECTED";
pub const EDR_CROWDSTRIKE_DRIVE_OUTDATED: &'static str = "EDR_CROWDSTRIKE_DRIVE_OUTDATED";
pub const EDR_CROWDSTRIKE_NO_BOX_TOOLS: &'static str = "EDR_CROWDSTRIKE_NO_BOX_TOOLS";
pub const EMAIL_ALIAS_CONFIRM: &'static str = "EMAIL_ALIAS_CONFIRM";
pub const EMAIL_ALIAS_PRIMARY: &'static str = "EMAIL_ALIAS_PRIMARY";
pub const EMAIL_ALIAS_REMOVE: &'static str = "EMAIL_ALIAS_REMOVE";
pub const EMAIL_UPLOAD_DISABLED: &'static str = "EMAIL_UPLOAD_DISABLED";
pub const EMAIL_UPLOAD_ENABLED: &'static str = "EMAIL_UPLOAD_ENABLED";
pub const ENABLE_MULTI_FACTOR_AUTH: &'static str = "ENABLE_MULTI_FACTOR_AUTH";
pub const ENABLE_TWO_FACTOR_AUTH: &'static str = "ENABLE_TWO_FACTOR_AUTH";
pub const ENTERPRISE_APP_AUTHORIZATION_UPDATE: &'static str =
"ENTERPRISE_APP_AUTHORIZATION_UPDATE";
pub const EXTERNAL_COLLAB_SECURITY_SETTINGS: &'static str = "EXTERNAL_COLLAB_SECURITY_SETTINGS";
pub const FAILED_LOGIN: &'static str = "FAILED_LOGIN";
pub const FAVORITE: &'static str = "FAVORITE";
pub const FILE_MARKED_MALICIOUS: &'static str = "FILE_MARKED_MALICIOUS";
pub const FILE_REQUEST_CREATE: &'static str = "FILE_REQUEST_CREATE";
pub const FILE_REQUEST_DELETE: &'static str = "FILE_REQUEST_DELETE";
pub const FILE_REQUEST_UPDATE: &'static str = "FILE_REQUEST_UPDATE";
pub const FILE_VERSION_RESTORE: &'static str = "FILE_VERSION_RESTORE";
pub const FILE_WATERMARKED_DOWNLOAD: &'static str = "FILE_WATERMARKED_DOWNLOAD";
pub const GROUP_ADD_ITEM: &'static str = "GROUP_ADD_ITEM";
pub const GROUP_ADD_USER: &'static str = "GROUP_ADD_USER";
pub const GROUP_ADMIN_CREATED: &'static str = "GROUP_ADMIN_CREATED";
pub const GROUP_ADMIN_DELETED: &'static str = "GROUP_ADMIN_DELETED";
pub const GROUP_ADMIN_PERMISSIONS_UPDATED: &'static str = "GROUP_ADMIN_PERMISSIONS_UPDATED";
pub const GROUP_CREATION: &'static str = "GROUP_CREATION";
pub const GROUP_DELETION: &'static str = "GROUP_DELETION";
pub const GROUP_EDITED: &'static str = "GROUP_EDITED";
pub const GROUP_REMOVE_ITEM: &'static str = "GROUP_REMOVE_ITEM";
pub const GROUP_REMOVE_USER: &'static str = "GROUP_REMOVE_USER";
pub const ILLEGAL_ITEM_OWNERSHIP_TRANSFER_BY_USER: &'static str =
"ILLEGAL_ITEM_OWNERSHIP_TRANSFER_BY_USER";
pub const ITEM_ASSOCIATION_CREATED: &'static str = "ITEM_ASSOCIATION_CREATED";
pub const ITEM_ASSOCIATION_DELETED: &'static str = "ITEM_ASSOCIATION_DELETED";
pub const ITEM_ASSOCIATION_UPDATED: &'static str = "ITEM_ASSOCIATION_UPDATED";
pub const ITEM_COPY: &'static str = "ITEM_COPY";
pub const ITEM_CREATE: &'static str = "ITEM_CREATE";
pub const ITEM_DOWNLOAD: &'static str = "ITEM_DOWNLOAD";
pub const ITEM_EMAIL_SEND: &'static str = "ITEM_EMAIL_SEND";
pub const ITEM_MAKE_CURRENT_VERSION: &'static str = "ITEM_MAKE_CURRENT_VERSION";
pub const ITEM_MODIFY: &'static str = "ITEM_MODIFY";
pub const ITEM_MOVE: &'static str = "ITEM_MOVE";
pub const ITEM_OPEN: &'static str = "ITEM_OPEN";
pub const ITEM_PREVIEW: &'static str = "ITEM_PREVIEW";
pub const ITEM_RENAME: &'static str = "ITEM_RENAME";
pub const ITEM_SHARED: &'static str = "ITEM_SHARED";
pub const ITEM_SHARED_CREATE: &'static str = "ITEM_SHARED_CREATE";
pub const ITEM_SHARED_UNSHARE: &'static str = "ITEM_SHARED_UNSHARE";
pub const ITEM_SHARED_UPDATE: &'static str = "ITEM_SHARED_UPDATE";
pub const ITEM_SYNC: &'static str = "ITEM_SYNC";
pub const ITEM_TRASH: &'static str = "ITEM_TRASH";
pub const ITEM_UNDELETE_VIA_TRASH: &'static str = "ITEM_UNDELETE_VIA_TRASH";
pub const ITEM_UNSYNC: &'static str = "ITEM_UNSYNC";
pub const ITEM_UPLOAD: &'static str = "ITEM_UPLOAD";
pub const LEGAL_HOLD_ASSIGNMENT_CREATE: &'static str = "LEGAL_HOLD_ASSIGNMENT_CREATE";
pub const LEGAL_HOLD_ASSIGNMENT_DELETE: &'static str = "LEGAL_HOLD_ASSIGNMENT_DELETE";
pub const LEGAL_HOLD_POLICY_CREATE: &'static str = "LEGAL_HOLD_POLICY_CREATE";
pub const LEGAL_HOLD_POLICY_DELETE: &'static str = "LEGAL_HOLD_POLICY_DELETE";
pub const LEGAL_HOLD_POLICY_UPDATE: &'static str = "LEGAL_HOLD_POLICY_UPDATE";
pub const LOCK: &'static str = "LOCK";
pub const LOCK_CREATE: &'static str = "LOCK_CREATE";
pub const LOCK_DESTROY: &'static str = "LOCK_DESTROY";
pub const LOGIN: &'static str = "LOGIN";
pub const MASTER_INVITE_ACCEPT: &'static str = "MASTER_INVITE_ACCEPT";
pub const MASTER_INVITE_REJECT: &'static str = "MASTER_INVITE_REJECT";
pub const METADATA_CASCADE_POLICY_APPLY: &'static str = "METADATA_CASCADE_POLICY_APPLY";
pub const METADATA_CASCADE_POLICY_CREATE: &'static str = "METADATA_CASCADE_POLICY_CREATE";
pub const METADATA_INSTANCE_COPY: &'static str = "METADATA_INSTANCE_COPY";
pub const METADATA_INSTANCE_CREATE: &'static str = "METADATA_INSTANCE_CREATE";
pub const METADATA_INSTANCE_DELETE: &'static str = "METADATA_INSTANCE_DELETE";
pub const METADATA_INSTANCE_UPDATE: &'static str = "METADATA_INSTANCE_UPDATE";
pub const METADATA_TEMPLATE_CREATE: &'static str = "METADATA_TEMPLATE_CREATE";
pub const METADATA_TEMPLATE_DELETE: &'static str = "METADATA_TEMPLATE_DELETE";
pub const METADATA_TEMPLATE_UPDATE: &'static str = "METADATA_TEMPLATE_UPDATE";
pub const MOVE: &'static str = "MOVE";
pub const NEW_USER: &'static str = "NEW_USER";
pub const OAUTH2_ACCESS_TOKEN_REVOKE: &'static str = "OAUTH2_ACCESS_TOKEN_REVOKE";
pub const OAUTH2_REFRESH_TOKEN_REVOKE: &'static str = "OAUTH2_REFRESH_TOKEN_REVOKE";
pub const PREVIEW: &'static str = "PREVIEW";
pub const REMOVE_DEVICE_ASSOCIATION: &'static str = "REMOVE_DEVICE_ASSOCIATION";
pub const REMOVE_LOGIN_ACTIVITY_DEVICE: &'static str = "REMOVE_LOGIN_ACTIVITY_DEVICE";
pub const RENAME: &'static str = "RENAME";
pub const RETENTION_POLICY_ASSIGNMENT_ADD: &'static str = "RETENTION_POLICY_ASSIGNMENT_ADD";
pub const SHARE: &'static str = "SHARE";
pub const SHARED_LINK_REDIRECT_OUT_OF_SHARED_CONTEXT: &'static str =
"SHARED_LINK_REDIRECT_OUT_OF_SHARED_CONTEXT";
pub const SHARED_LINK_SEND: &'static str = "SHARED_LINK_SEND";
pub const SHARE_EXPIRATION: &'static str = "SHARE_EXPIRATION";
pub const SHIELD_ACCESS_POLICY_CREATED: &'static str = "SHIELD_ACCESS_POLICY_CREATED";
pub const SHIELD_ACCESS_POLICY_DELETED: &'static str = "SHIELD_ACCESS_POLICY_DELETED";
pub const SHIELD_ACCESS_POLICY_UPDATED: &'static str = "SHIELD_ACCESS_POLICY_UPDATED";
pub const SHIELD_ALERT: &'static str = "SHIELD_ALERT";
pub const SHIELD_DOWNLOAD_BLOCKED: &'static str = "SHIELD_DOWNLOAD_BLOCKED";
pub const SHIELD_EXTERNAL_COLLAB_ACCESS_BLOCKED: &'static str =
"SHIELD_EXTERNAL_COLLAB_ACCESS_BLOCKED";
pub const SHIELD_EXTERNAL_COLLAB_ACCESS_BLOCKED_MISSING_JUSTIFICATION: &'static str =
"SHIELD_EXTERNAL_COLLAB_ACCESS_BLOCKED_MISSING_JUSTIFICATION";
pub const SHIELD_EXTERNAL_COLLAB_INVITE_BLOCKED: &'static str =
"SHIELD_EXTERNAL_COLLAB_INVITE_BLOCKED";
pub const SHIELD_EXTERNAL_COLLAB_INVITE_BLOCKED_MISSING_JUSTIFICATION: &'static str =
"SHIELD_EXTERNAL_COLLAB_INVITE_BLOCKED_MISSING_JUSTIFICATION";
pub const SHIELD_EXTERNAL_COLLAB_INVITE_JUSTIFIED: &'static str =
"SHIELD_EXTERNAL_COLLAB_INVITE_JUSTIFIED";
pub const SHIELD_INFORMATION_BARRIER_COLLAB_BLOCKED: &'static str =
"SHIELD_INFORMATION_BARRIER_COLLAB_BLOCKED";
pub const SHIELD_INFORMATION_BARRIER_DISABLED: &'static str =
"SHIELD_INFORMATION_BARRIER_DISABLED";
pub const SHIELD_INFORMATION_BARRIER_ENABLED: &'static str =
"SHIELD_INFORMATION_BARRIER_ENABLED";
pub const SHIELD_INFORMATION_BARRIER_GROUP_ADD_USER_BLOCKED: &'static str =
"SHIELD_INFORMATION_BARRIER_GROUP_ADD_USER_BLOCKED";
pub const SHIELD_INFORMATION_BARRIER_ITEM_COPY_BLOCKED: &'static str =
"SHIELD_INFORMATION_BARRIER_ITEM_COPY_BLOCKED";
pub const SHIELD_INFORMATION_BARRIER_ITEM_MOVE_BLOCKED: &'static str =
"SHIELD_INFORMATION_BARRIER_ITEM_MOVE_BLOCKED";
pub const SHIELD_INFORMATION_BARRIER_ITEM_OWNER_TRANSFER_BLOCKED: &'static str =
"SHIELD_INFORMATION_BARRIER_ITEM_OWNER_TRANSFER_BLOCKED";
pub const SHIELD_INFORMATION_BARRIER_PENDING: &'static str =
"SHIELD_INFORMATION_BARRIER_PENDING";
pub const SHIELD_INFORMATION_BARRIER_SHARED_ITEM_ACCESS_BLOCKED: &'static str =
"SHIELD_INFORMATION_BARRIER_SHARED_ITEM_ACCESS_BLOCKED";
pub const SHIELD_JUSTIFICATION_APPROVAL: &'static str = "SHIELD_JUSTIFICATION_APPROVAL";
pub const SHIELD_SHARED_LINK_ACCESS_BLOCKED: &'static str = "SHIELD_SHARED_LINK_ACCESS_BLOCKED";
pub const SHIELD_SHARED_LINK_STATUS_RESTRICTED_ON_CREATE: &'static str =
"SHIELD_SHARED_LINK_STATUS_RESTRICTED_ON_CREATE";
pub const SHIELD_SHARED_LINK_STATUS_RESTRICTED_ON_UPDATE: &'static str =
"SHIELD_SHARED_LINK_STATUS_RESTRICTED_ON_UPDATE";
pub const SIGN_DOCUMENT_ASSIGNED: &'static str = "SIGN_DOCUMENT_ASSIGNED";
pub const SIGN_DOCUMENT_CANCELLED: &'static str = "SIGN_DOCUMENT_CANCELLED";
pub const SIGN_DOCUMENT_COMPLETED: &'static str = "SIGN_DOCUMENT_COMPLETED";
pub const SIGN_DOCUMENT_CONVERTED: &'static str = "SIGN_DOCUMENT_CONVERTED";
pub const SIGN_DOCUMENT_CREATED: &'static str = "SIGN_DOCUMENT_CREATED";
pub const SIGN_DOCUMENT_DECLINED: &'static str = "SIGN_DOCUMENT_DECLINED";
pub const SIGN_DOCUMENT_EXPIRED: &'static str = "SIGN_DOCUMENT_EXPIRED";
pub const SIGN_DOCUMENT_SIGNED: &'static str = "SIGN_DOCUMENT_SIGNED";
pub const SIGN_DOCUMENT_VIEWED_BY_SIGNED: &'static str = "SIGN_DOCUMENT_VIEWED_BY_SIGNED";
pub const SIGN_DOCUMENT_VIEWED_BY_SIGNER: &'static str = "SIGN_DOCUMENT_VIEWED_BY_SIGNER";
pub const SIGNER_DOWNLOADED: &'static str = "SIGNER_DOWNLOADED";
pub const SIGNER_FORWARDED: &'static str = "SIGNER_FORWARDED";
pub const STORAGE_EXPIRATION: &'static str = "STORAGE_EXPIRATION";
pub const TAG_ITEM_CREATE: &'static str = "TAG_ITEM_CREATE";
pub const TASK_ASSIGNMENT_CREATE: &'static str = "TASK_ASSIGNMENT_CREATE";
pub const TASK_ASSIGNMENT_DELETE: &'static str = "TASK_ASSIGNMENT_DELETE";
pub const TASK_ASSIGNMENT_UPDATE: &'static str = "TASK_ASSIGNMENT_UPDATE";
pub const TASK_CREATE: &'static str = "TASK_CREATE";
pub const TASK_UPDATE: &'static str = "TASK_UPDATE";
pub const TERMS_OF_SERVICE_ACCEPT: &'static str = "TERMS_OF_SERVICE_ACCEPT";
pub const TERMS_OF_SERVICE_REJECT: &'static str = "TERMS_OF_SERVICE_REJECT";
pub const UNDELETE: &'static str = "UNDELETE";
pub const UNFAVORITE: &'static str = "UNFAVORITE";
pub const UNLOCK: &'static str = "UNLOCK";
pub const UNSHARE: &'static str = "UNSHARE";
pub const UPDATE_COLLABORATION_EXPIRATION: &'static str = "UPDATE_COLLABORATION_EXPIRATION";
pub const UPDATE_SHARE_EXPIRATION: &'static str = "UPDATE_SHARE_EXPIRATION";
pub const UPLOAD: &'static str = "UPLOAD";
pub const USER_AUTHENTICATE_OAUTH2_ACCESS_TOKEN_CREATE: &'static str =
"USER_AUTHENTICATE_OAUTH2_ACCESS_TOKEN_CREATE";
pub const WATERMARK_LABEL_CREATE: &'static str = "WATERMARK_LABEL_CREATE";
pub const WATERMARK_LABEL_DELETE: &'static str = "WATERMARK_LABEL_DELETE";
pub const WORKFLOW_AUTOMATION_CREATE: &'static str = "WORKFLOW_AUTOMATION_CREATE";
pub const WORKFLOW_AUTOMATION_DELETE: &'static str = "WORKFLOW_AUTOMATION_DELETE";
pub const WORKFLOW_AUTOMATION_UPDATE: &'static str = "WORKFLOW_AUTOMATION_UPDATE";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct EventsNextStreamPosition(pub serde_json::Value);
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct EventSourceItemType(pub String);
impl EventSourceItemType {
pub const FILE: &'static str = "file";
pub const FOLDER: &'static str = "folder";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct EventSourceClassification {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct FilePathCollection {
pub total_count: i64,
pub entries: Vec<FolderMini>,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct SharedLinkAccess(pub String);
impl SharedLinkAccess {
pub const OPEN: &'static str = "open";
pub const COMPANY: &'static str = "company";
pub const COLLABORATORS: &'static str = "collaborators";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct SharedLinkEffectivePermission(pub String);
impl SharedLinkEffectivePermission {
pub const CAN_EDIT: &'static str = "can_edit";
pub const CAN_DOWNLOAD: &'static str = "can_download";
pub const CAN_PREVIEW: &'static str = "can_preview";
pub const NO_ACCESS: &'static str = "no_access";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct SharedLinkPermissions {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub can_download: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub can_preview: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub can_edit: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub shared_links_option: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub default_shared_link_type: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub notes_shared_link_option: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub default_notes_shared_link_type: Option<Option<String>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct FileSharedLink {
pub url: String,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub download_url: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub vanity_url: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub vanity_name: Option<Option<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub access: Option<SharedLinkAccess>,
pub effective_access: SharedLinkAccess,
pub effective_permission: SharedLinkEffectivePermission,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub unshared_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
pub is_password_enabled: bool,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub permissions: Option<SharedLinkPermissions>,
pub download_count: i64,
pub preview_count: i64,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct FileItemStatus(pub String);
impl FileItemStatus {
pub const ACTIVE: &'static str = "active";
pub const TRASHED: &'static str = "trashed";
pub const DELETED: &'static str = "deleted";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct FileFullPermissions {
pub can_delete: bool,
pub can_download: bool,
pub can_invite_collaborator: bool,
pub can_rename: bool,
pub can_set_share_access: bool,
pub can_share: bool,
pub can_annotate: bool,
pub can_comment: bool,
pub can_preview: bool,
pub can_upload: bool,
pub can_view_annotations_all: bool,
pub can_view_annotations_self: bool,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub can_apply_watermark: Option<bool>,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct LockType(pub String);
impl LockType {
pub const LOCK: &'static str = "lock";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct LockAppType(pub String);
impl LockAppType {
pub const GSUITE: &'static str = "gsuite";
pub const OFFICE_WOPI: &'static str = "office_wopi";
pub const OFFICE_WOPIPLUS: &'static str = "office_wopiplus";
pub const OTHER: &'static str = "other";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct FileFullLock {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<LockType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_by: Option<UserMini>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub expired_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_download_prevented: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub app_type: Option<Option<LockAppType>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct FileFullExpiringEmbedLink {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub access_token: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub expires_in: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub token_type: Option<AccessTokenTokenType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub restricted_to: Option<Vec<ResourceScope>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub url: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct FileFullWatermarkInfo {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_watermarked: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_watermark_inherited: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_watermarked_by_access_policy: Option<bool>,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct FileFullAllowedInviteeRoles(pub String);
impl FileFullAllowedInviteeRoles {
pub const EDITOR: &'static str = "editor";
pub const VIEWER: &'static str = "viewer";
pub const PREVIEWER: &'static str = "previewer";
pub const UPLOADER: &'static str = "uploader";
pub const PREVIEWER_UPLOADER: &'static str = "previewer uploader";
pub const VIEWER_UPLOADER: &'static str = "viewer uploader";
pub const CO_OWNER: &'static str = "co-owner";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct EntriesContent {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub url_template: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct EntriesInfo {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub url: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct EntriesProperties {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub dimensions: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub paged: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub thumb: Option<String>,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct StatusState(pub String);
impl StatusState {
pub const SUCCESS: &'static str = "success";
pub const VIEWABLE: &'static str = "viewable";
pub const PENDING: &'static str = "pending";
pub const NONE: &'static str = "none";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct EntriesStatus {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub state: Option<StatusState>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct RepresentationsEntries {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub content: Option<EntriesContent>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub info: Option<EntriesInfo>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub properties: Option<EntriesProperties>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub representation: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status: Option<EntriesStatus>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct FileFullRepresentations {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub entries: Option<Vec<RepresentationsEntries>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct FileFullClassification {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub definition: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub color: Option<String>,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct FileFullSharedLinkPermissionOptions(pub String);
impl FileFullSharedLinkPermissionOptions {
pub const CAN_PREVIEW: &'static str = "can_preview";
pub const CAN_DOWNLOAD: &'static str = "can_download";
pub const CAN_EDIT: &'static str = "can_edit";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct FileRequestType(pub String);
impl FileRequestType {
pub const FILE_REQUEST: &'static str = "file_request";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct FileRequestStatus(pub String);
impl FileRequestStatus {
pub const ACTIVE: &'static str = "active";
pub const INACTIVE: &'static str = "inactive";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct FolderType(pub String);
impl FolderType {
pub const FOLDER: &'static str = "folder";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct FileRequestCopyRequestFolder {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<FolderType>,
pub id: String,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct FileVersionType(pub String);
impl FileVersionType {
pub const FILE_VERSION: &'static str = "file_version";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct FileVersionLegalHoldType(pub String);
impl FileVersionLegalHoldType {
pub const FILE_VERSION_LEGAL_HOLD: &'static str = "file_version_legal_hold";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct FileVersionRetentionType(pub String);
impl FileVersionRetentionType {
pub const FILE_VERSION_RETENTION: &'static str = "file_version_retention";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct FolderUploadEmailAccess(pub String);
impl FolderUploadEmailAccess {
pub const OPEN: &'static str = "open";
pub const COLLABORATORS: &'static str = "collaborators";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct FolderFolderUploadEmail {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub access: Option<FolderUploadEmailAccess>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub email: Option<String>,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct FolderFullSyncState(pub String);
impl FolderFullSyncState {
pub const SYNCED: &'static str = "synced";
pub const NOT_SYNCED: &'static str = "not_synced";
pub const PARTIALLY_SYNCED: &'static str = "partially_synced";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct FolderFullPermissions {
pub can_delete: bool,
pub can_download: bool,
pub can_invite_collaborator: bool,
pub can_rename: bool,
pub can_set_share_access: bool,
pub can_share: bool,
pub can_upload: bool,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub can_apply_watermark: Option<bool>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct FolderLockLockedOperations {
pub r#move: bool,
pub delete: bool,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct GroupType(pub String);
impl GroupType {
pub const GROUP: &'static str = "group";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct GroupGroupType(pub String);
impl GroupGroupType {
pub const MANAGED_GROUP: &'static str = "managed_group";
pub const ALL_USERS_GROUP: &'static str = "all_users_group";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct GroupFullInvitabilityLevel(pub String);
impl GroupFullInvitabilityLevel {
pub const ADMINS_ONLY: &'static str = "admins_only";
pub const ADMINS_AND_MEMBERS: &'static str = "admins_and_members";
pub const ALL_MANAGED_USERS: &'static str = "all_managed_users";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct GroupFullPermissions {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub can_invite_as_collaborator: Option<bool>,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct GroupMembershipType(pub String);
impl GroupMembershipType {
pub const GROUP_MEMBERSHIP: &'static str = "group_membership";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct GroupMembershipRole(pub String);
impl GroupMembershipRole {
pub const MEMBER: &'static str = "member";
pub const ADMIN: &'static str = "admin";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct IntegrationMappingType(pub String);
impl IntegrationMappingType {
pub const INTEGRATION_MAPPING: &'static str = "integration_mapping";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct IntegrationMappingIntegrationType(pub String);
impl IntegrationMappingIntegrationType {
pub const SLACK: &'static str = "slack";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct IntegrationMappingPartnerItemSlackType(pub String);
impl IntegrationMappingPartnerItemSlackType {
pub const CHANNEL: &'static str = "channel";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct IntegrationMappingPartnerItemTeamsType(pub String);
impl IntegrationMappingPartnerItemTeamsType {
pub const CHANNEL: &'static str = "channel";
pub const TEAM: &'static str = "team";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct IntegrationMappingTeamsIntegrationType(pub String);
impl IntegrationMappingTeamsIntegrationType {
pub const TEAMS: &'static str = "teams";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct InviteType(pub String);
impl InviteType {
pub const INVITE: &'static str = "invite";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct KeywordSkillCardType(pub String);
impl KeywordSkillCardType {
pub const SKILL_CARD: &'static str = "skill_card";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct KeywordSkillCardSkillCardType(pub String);
impl KeywordSkillCardSkillCardType {
pub const KEYWORD: &'static str = "keyword";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct KeywordSkillCardSkillCardTitle {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub code: Option<String>,
pub message: String,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct SkillType(pub String);
impl SkillType {
pub const SERVICE: &'static str = "service";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct KeywordSkillCardSkill {
pub r#type: SkillType,
pub id: String,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct InvocationType(pub String);
impl InvocationType {
pub const SKILL_INVOCATION: &'static str = "skill_invocation";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct KeywordSkillCardInvocation {
pub r#type: InvocationType,
pub id: String,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct KeywordSkillCardEntries {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub text: Option<String>,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct LegalHoldPolicyType(pub String);
impl LegalHoldPolicyType {
pub const LEGAL_HOLD_POLICY: &'static str = "legal_hold_policy";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct LegalHoldPolicyStatus(pub String);
impl LegalHoldPolicyStatus {
pub const ACTIVE: &'static str = "active";
pub const APPLYING: &'static str = "applying";
pub const RELEASING: &'static str = "releasing";
pub const RELEASED: &'static str = "released";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct LegalHoldPolicyAssignmentCounts {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub user: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub folder: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub file: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub file_version: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ownership: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub interactions: Option<i64>,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct LegalHoldPolicyAssignedItemType(pub String);
impl LegalHoldPolicyAssignedItemType {
pub const FILE: &'static str = "file";
pub const FILE_VERSION: &'static str = "file_version";
pub const FOLDER: &'static str = "folder";
pub const USER: &'static str = "user";
pub const OWNERSHIP: &'static str = "ownership";
pub const INTERACTIONS: &'static str = "interactions";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct LegalHoldPolicyAssignmentType(pub String);
impl LegalHoldPolicyAssignmentType {
pub const LEGAL_HOLD_POLICY_ASSIGNMENT: &'static str = "legal_hold_policy_assignment";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct MetadataCascadePolicyType(pub String);
impl MetadataCascadePolicyType {
pub const METADATA_CASCADE_POLICY: &'static str = "metadata_cascade_policy";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct MetadataCascadePolicyOwnerEnterprise {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<EnterpriseType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct MetadataCascadePolicyParent {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<FolderType>,
#[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 MetadataFilterScope(pub String);
impl MetadataFilterScope {
pub const GLOBAL: &'static str = "global";
pub const ENTERPRISE: &'static str = "enterprise";
pub const ENTERPRISE_ENTERPRISE_ID: &'static str = "enterprise_{enterprise_id}";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct OrderByDirection(pub String);
impl OrderByDirection {
pub const ASC: &'static str = "ASC";
pub const DESC: &'static str = "DESC";
pub const ASC_2: &'static str = "asc";
pub const DESC_2: &'static str = "desc";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct MetadataQueryOrderBy {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub field_key: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub direction: Option<OrderByDirection>,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct FieldsType2(pub String);
impl FieldsType2 {
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 FieldsOptions3 {
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: FieldsType2,
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<FieldsOptions3>>,
#[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 PostOAuth2TokenGrantType(pub String);
impl PostOAuth2TokenGrantType {
pub const AUTHORIZATION_CODE: &'static str = "authorization_code";
pub const REFRESH_TOKEN: &'static str = "refresh_token";
pub const CLIENT_CREDENTIALS: &'static str = "client_credentials";
pub const URN_IETF_PARAMS_OAUTH_GRANT_TYPE_JWT_BEARER: &'static str =
"urn:ietf:params:oauth:grant-type:jwt-bearer";
pub const URN_IETF_PARAMS_OAUTH_GRANT_TYPE_TOKEN_EXCHANGE: &'static str =
"urn:ietf:params:oauth:grant-type:token-exchange";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct PostOAuth2TokenActorTokenType(pub String);
impl PostOAuth2TokenActorTokenType {
pub const URN_IETF_PARAMS_OAUTH_TOKEN_TYPE_ID_TOKEN: &'static str =
"urn:ietf:params:oauth:token-type:id_token";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct PostOAuth2TokenBoxSubjectType(pub String);
impl PostOAuth2TokenBoxSubjectType {
pub const ENTERPRISE: &'static str = "enterprise";
pub const USER: &'static str = "user";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct PostOAuth2TokenRefreshAccessTokenGrantType(pub String);
impl PostOAuth2TokenRefreshAccessTokenGrantType {
pub const REFRESH_TOKEN: &'static str = "refresh_token";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct RecentItemInteractionType(pub String);
impl RecentItemInteractionType {
pub const ITEM_PREVIEW: &'static str = "item_preview";
pub const ITEM_UPLOAD: &'static str = "item_upload";
pub const ITEM_COMMENT: &'static str = "item_comment";
pub const ITEM_OPEN: &'static str = "item_open";
pub const ITEM_MODIFY: &'static str = "item_modify";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct ResourceScopeScope(pub String);
impl ResourceScopeScope {
pub const ANNOTATION_EDIT: &'static str = "annotation_edit";
pub const ANNOTATION_VIEW_ALL: &'static str = "annotation_view_all";
pub const ANNOTATION_VIEW_SELF: &'static str = "annotation_view_self";
pub const BASE_EXPLORER: &'static str = "base_explorer";
pub const BASE_PICKER: &'static str = "base_picker";
pub const BASE_PREVIEW: &'static str = "base_preview";
pub const BASE_UPLOAD: &'static str = "base_upload";
pub const ITEM_DELETE: &'static str = "item_delete";
pub const ITEM_DOWNLOAD: &'static str = "item_download";
pub const ITEM_PREVIEW: &'static str = "item_preview";
pub const ITEM_RENAME: &'static str = "item_rename";
pub const ITEM_SHARE: &'static str = "item_share";
pub const ITEM_UPLOAD: &'static str = "item_upload";
pub const ITEM_READ: &'static str = "item_read";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct RetentionPolicyType(pub String);
impl RetentionPolicyType {
pub const RETENTION_POLICY: &'static str = "retention_policy";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct RetentionPolicyDispositionAction(pub String);
impl RetentionPolicyDispositionAction {
pub const PERMANENTLY_DELETE: &'static str = "permanently_delete";
pub const REMOVE_RETENTION: &'static str = "remove_retention";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct RetentionPolicyPolicyType(pub String);
impl RetentionPolicyPolicyType {
pub const FINITE: &'static str = "finite";
pub const INDEFINITE: &'static str = "indefinite";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct RetentionPolicyRetentionType(pub String);
impl RetentionPolicyRetentionType {
pub const MODIFIABLE: &'static str = "modifiable";
pub const NON_MODIFIABLE: &'static str = "non_modifiable";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct RetentionPolicyStatus(pub String);
impl RetentionPolicyStatus {
pub const ACTIVE: &'static str = "active";
pub const RETIRED: &'static str = "retired";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct RetentionPolicyAssignmentCounts {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub enterprise: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub folder: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub metadata_template: Option<i64>,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct RetentionPolicyAssignmentType(pub String);
impl RetentionPolicyAssignmentType {
pub const RETENTION_POLICY_ASSIGNMENT: &'static str = "retention_policy_assignment";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct AssignedToType(pub String);
impl AssignedToType {
pub const FOLDER: &'static str = "folder";
pub const ENTERPRISE: &'static str = "enterprise";
pub const METADATA_TEMPLATE: &'static str = "metadata_template";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct RetentionPolicyAssignmentAssignedTo {
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub id: Option<Option<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<AssignedToType>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct RetentionPolicyAssignmentFilterFields {
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub field: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub value: Option<Option<String>>,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct RetentionPolicyMaxExtensionLengthRequestVariant0(pub String);
impl RetentionPolicyMaxExtensionLengthRequestVariant0 {
pub const NONE: &'static str = "none";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct RoleVariableVariableType(pub String);
impl RoleVariableVariableType {
pub const COLLABORATOR_ROLE: &'static str = "collaborator_role";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct SearchResultsType(pub String);
impl SearchResultsType {
pub const SEARCH_RESULTS_ITEMS: &'static str = "search_results_items";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct SearchResultsWithSharedLinksType(pub String);
impl SearchResultsWithSharedLinksType {
pub const SEARCH_RESULTS_WITH_SHARED_LINKS: &'static str = "search_results_with_shared_links";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct ShieldInformationBarrierType(pub String);
impl ShieldInformationBarrierType {
pub const SHIELD_INFORMATION_BARRIER: &'static str = "shield_information_barrier";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct ShieldInformationBarrierStatus(pub String);
impl ShieldInformationBarrierStatus {
pub const DRAFT: &'static str = "draft";
pub const PENDING: &'static str = "pending";
pub const DISABLED: &'static str = "disabled";
pub const ENABLED: &'static str = "enabled";
pub const INVALID: &'static str = "invalid";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct ShieldInformationBarrierReportType(pub String);
impl ShieldInformationBarrierReportType {
pub const SHIELD_INFORMATION_BARRIER_REPORT: &'static str = "shield_information_barrier_report";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct ShieldInformationBarrierReportStatus(pub String);
impl ShieldInformationBarrierReportStatus {
pub const PENDING: &'static str = "pending";
pub const ERROR: &'static str = "error";
pub const DONE: &'static str = "done";
pub const CANCELLED: &'static str = "cancelled";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct ShieldInformationBarrierReportDetailsDetails {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub folder_id: Option<String>,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct ShieldInformationBarrierSegmentType(pub String);
impl ShieldInformationBarrierSegmentType {
pub const SHIELD_INFORMATION_BARRIER_SEGMENT: &'static str =
"shield_information_barrier_segment";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct ShieldInformationBarrierSegmentMemberType(pub String);
impl ShieldInformationBarrierSegmentMemberType {
pub const SHIELD_INFORMATION_BARRIER_SEGMENT_MEMBER: &'static str =
"shield_information_barrier_segment_member";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegment {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<ShieldInformationBarrierSegmentType>,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct ShieldInformationBarrierSegmentRestrictionType(pub String);
impl ShieldInformationBarrierSegmentRestrictionType {
pub const SHIELD_INFORMATION_BARRIER_SEGMENT_RESTRICTION: &'static str =
"shield_information_barrier_segment_restriction";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct SignRequestType(pub String);
impl SignRequestType {
pub const SIGN_REQUEST: &'static str = "sign-request";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct SignRequestStatus(pub String);
impl SignRequestStatus {
pub const CONVERTING: &'static str = "converting";
pub const CREATED: &'static str = "created";
pub const SENT: &'static str = "sent";
pub const VIEWED: &'static str = "viewed";
pub const SIGNED: &'static str = "signed";
pub const CANCELLED: &'static str = "cancelled";
pub const DECLINED: &'static str = "declined";
pub const ERROR: &'static str = "error";
pub const ERROR_CONVERTING: &'static str = "error_converting";
pub const ERROR_SENDING: &'static str = "error_sending";
pub const EXPIRED: &'static str = "expired";
pub const FINALIZING: &'static str = "finalizing";
pub const ERROR_FINALIZING: &'static str = "error_finalizing";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct SignRequestSignFiles {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub files: Option<Vec<FileMini>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_ready_for_download: Option<bool>,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct SignRequestCreateRequestSignatureColor(pub String);
impl SignRequestCreateRequestSignatureColor {
pub const BLUE: &'static str = "blue";
pub const BLACK: &'static str = "black";
pub const RED: &'static str = "red";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct SignRequestCreateSignerRole(pub String);
impl SignRequestCreateSignerRole {
pub const SIGNER: &'static str = "signer";
pub const APPROVER: &'static str = "approver";
pub const FINAL_COPY_READER: &'static str = "final_copy_reader";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct SignerDecisionType(pub String);
impl SignerDecisionType {
pub const SIGNED: &'static str = "signed";
pub const DECLINED: &'static str = "declined";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct SignRequestSignerSignerDecision {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<SignerDecisionType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub finalized_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub additional_info: Option<Option<String>>,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct SignRequestSignerInputType(pub String);
impl SignRequestSignerInputType {
pub const SIGNATURE: &'static str = "signature";
pub const DATE: &'static str = "date";
pub const TEXT: &'static str = "text";
pub const CHECKBOX: &'static str = "checkbox";
pub const RADIO: &'static str = "radio";
pub const DROPDOWN: &'static str = "dropdown";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct SignRequestSignerInputContentType(pub String);
impl SignRequestSignerInputContentType {
pub const SIGNATURE: &'static str = "signature";
pub const INITIAL: &'static str = "initial";
pub const STAMP: &'static str = "stamp";
pub const DATE: &'static str = "date";
pub const CHECKBOX: &'static str = "checkbox";
pub const TEXT: &'static str = "text";
pub const FULL_NAME: &'static str = "full_name";
pub const FIRST_NAME: &'static str = "first_name";
pub const LAST_NAME: &'static str = "last_name";
pub const COMPANY: &'static str = "company";
pub const TITLE: &'static str = "title";
pub const EMAIL: &'static str = "email";
pub const ATTACHMENT: &'static str = "attachment";
pub const RADIO: &'static str = "radio";
pub const DROPDOWN: &'static str = "dropdown";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct SignRequestSignerInputValidation2(pub serde_json::Value);
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct SignRequestSignerInputCustomValidationValidationType(pub String);
impl SignRequestSignerInputCustomValidationValidationType {
pub const CUSTOM: &'static str = "custom";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct SignRequestSignerInputDateAsiaValidationValidationType(pub String);
impl SignRequestSignerInputDateAsiaValidationValidationType {
pub const DATE_ASIA: &'static str = "date_asia";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct SignRequestSignerInputDateEUValidationValidationType(pub String);
impl SignRequestSignerInputDateEUValidationValidationType {
pub const DATE_EU: &'static str = "date_eu";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct SignRequestSignerInputDateISOValidationValidationType(pub String);
impl SignRequestSignerInputDateISOValidationValidationType {
pub const DATE_ISO: &'static str = "date_iso";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct SignRequestSignerInputDateUSValidationValidationType(pub String);
impl SignRequestSignerInputDateUSValidationValidationType {
pub const DATE_US: &'static str = "date_us";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct SignRequestSignerInputEmailValidationValidationType(pub String);
impl SignRequestSignerInputEmailValidationValidationType {
pub const EMAIL: &'static str = "email";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct SignRequestSignerInputNumberWithCommaValidationValidationType(pub String);
impl SignRequestSignerInputNumberWithCommaValidationValidationType {
pub const NUMBER_WITH_COMMA: &'static str = "number_with_comma";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct SignRequestSignerInputNumberWithPeriodValidationValidationType(pub String);
impl SignRequestSignerInputNumberWithPeriodValidationValidationType {
pub const NUMBER_WITH_PERIOD: &'static str = "number_with_period";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct SignRequestSignerInputSSNValidationValidationType(pub String);
impl SignRequestSignerInputSSNValidationValidationType {
pub const SSN: &'static str = "ssn";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct SignRequestSignerInputZIP4ValidationValidationType(pub String);
impl SignRequestSignerInputZIP4ValidationValidationType {
pub const ZIP_4: &'static str = "zip_4";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct SignRequestSignerInputZIPValidationValidationType(pub String);
impl SignRequestSignerInputZIPValidationValidationType {
pub const ZIP: &'static str = "zip";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct SignTemplateType(pub String);
impl SignTemplateType {
pub const SIGN_TEMPLATE: &'static str = "sign-template";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct AdditionalInfoNonEditable(pub String);
impl AdditionalInfoNonEditable {
pub const EMAIL_SUBJECT: &'static str = "email_subject";
pub const EMAIL_MESSAGE: &'static str = "email_message";
pub const NAME: &'static str = "name";
pub const DAYS_VALID: &'static str = "days_valid";
pub const SIGNERS: &'static str = "signers";
pub const SOURCE_FILES: &'static str = "source_files";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct AdditionalInfoRequired {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub signers: Option<Vec<Vec<SignRequestSignerInputEmailValidationValidationType>>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct SignTemplateAdditionalInfo {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub non_editable: Option<Vec<AdditionalInfoNonEditable>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub required: Option<AdditionalInfoRequired>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct SignTemplateReadySignLink {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub url: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub name: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub instructions: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub folder_id: Option<Option<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_notification_disabled: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_active: Option<bool>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct SignTemplateCustomBranding {
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub company_name: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub logo_uri: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub branding_color: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub email_footer_text: Option<Option<String>>,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct StatusSkillCardSkillCardType(pub String);
impl StatusSkillCardSkillCardType {
pub const STATUS: &'static str = "status";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct StatusCode(pub String);
impl StatusCode {
pub const INVOKED: &'static str = "invoked";
pub const PROCESSING: &'static str = "processing";
pub const SUCCESS: &'static str = "success";
pub const TRANSIENT_FAILURE: &'static str = "transient_failure";
pub const PERMANENT_FAILURE: &'static str = "permanent_failure";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct StatusSkillCardStatus {
pub code: StatusCode,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct StoragePolicyType(pub String);
impl StoragePolicyType {
pub const STORAGE_POLICY: &'static str = "storage_policy";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct StoragePolicyAssignmentType(pub String);
impl StoragePolicyAssignmentType {
pub const STORAGE_POLICY_ASSIGNMENT: &'static str = "storage_policy_assignment";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct TaskType(pub String);
impl TaskType {
pub const TASK: &'static str = "task";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct TaskAction(pub String);
impl TaskAction {
pub const REVIEW: &'static str = "review";
pub const COMPLETE: &'static str = "complete";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct TaskCompletionRule(pub String);
impl TaskCompletionRule {
pub const ALL_ASSIGNEES: &'static str = "all_assignees";
pub const ANY_ASSIGNEE: &'static str = "any_assignee";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct TaskAssignmentType(pub String);
impl TaskAssignmentType {
pub const TASK_ASSIGNMENT: &'static str = "task_assignment";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct TaskAssignmentResolutionState(pub String);
impl TaskAssignmentResolutionState {
pub const COMPLETED: &'static str = "completed";
pub const INCOMPLETE: &'static str = "incomplete";
pub const APPROVED: &'static str = "approved";
pub const REJECTED: &'static str = "rejected";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct TemplateSignerInputType(pub String);
impl TemplateSignerInputType {
pub const SIGNATURE: &'static str = "signature";
pub const DATE: &'static str = "date";
pub const TEXT: &'static str = "text";
pub const CHECKBOX: &'static str = "checkbox";
pub const ATTACHMENT: &'static str = "attachment";
pub const RADIO: &'static str = "radio";
pub const DROPDOWN: &'static str = "dropdown";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct TemplateSignerInputCoordinates {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub x: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub y: Option<f64>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct TemplateSignerInputDimensions {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub width: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub height: Option<f64>,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct TermsOfServiceType(pub String);
impl TermsOfServiceType {
pub const TERMS_OF_SERVICE: &'static str = "terms_of_service";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct TermsOfServiceStatus(pub String);
impl TermsOfServiceStatus {
pub const ENABLED: &'static str = "enabled";
pub const DISABLED: &'static str = "disabled";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct TermsOfServiceTosType(pub String);
impl TermsOfServiceTosType {
pub const MANAGED: &'static str = "managed";
pub const EXTERNAL: &'static str = "external";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct TermsOfServiceUserStatusType(pub String);
impl TermsOfServiceUserStatusType {
pub const TERMS_OF_SERVICE_USER_STATUS: &'static str = "terms_of_service_user_status";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct TimelineSkillCardSkillCardType(pub String);
impl TimelineSkillCardSkillCardType {
pub const TIMELINE: &'static str = "timeline";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct EntriesAppears {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub start: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub end: Option<i64>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct TimelineSkillCardEntries {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub text: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub appears: Option<Vec<EntriesAppears>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub image_url: Option<String>,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct TrackingCodeType(pub String);
impl TrackingCodeType {
pub const TRACKING_CODE: &'static str = "tracking_code";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct TranscriptSkillCardSkillCardType(pub String);
impl TranscriptSkillCardSkillCardType {
pub const TRANSCRIPT: &'static str = "transcript";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct EntriesAppears2 {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub start: Option<i64>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct TranscriptSkillCardEntries {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub text: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub appears: Option<Vec<EntriesAppears2>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct PathCollectionEntries {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<FolderType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub sequence_id: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub etag: Option<Option<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct TrashFilePathCollection {
pub total_count: i64,
pub entries: Vec<PathCollectionEntries>,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct TrashWebLinkType(pub String);
impl TrashWebLinkType {
pub const WEB_LINK: &'static str = "web_link";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct UploadSessionType(pub String);
impl UploadSessionType {
pub const UPLOAD_SESSION: &'static str = "upload_session";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct UploadSessionSessionEndpoints {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub upload_part: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub commit: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub abort: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub list_parts: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub log_event: Option<String>,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct UserStatus(pub String);
impl UserStatus {
pub const ACTIVE: &'static str = "active";
pub const INACTIVE: &'static str = "inactive";
pub const CANNOT_DELETE_EDIT: &'static str = "cannot_delete_edit";
pub const CANNOT_DELETE_EDIT_UPLOAD: &'static str = "cannot_delete_edit_upload";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct UserNotificationEmail {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub email: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_confirmed: Option<bool>,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct UserFullRole(pub String);
impl UserFullRole {
pub const ADMIN: &'static str = "admin";
pub const COADMIN: &'static str = "coadmin";
pub const USER: &'static str = "user";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct UserAvatarPicUrls {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub small: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub large: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub preview: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct WatermarkWatermark {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub modified_at: Option<chrono::DateTime<chrono::Utc>>,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct WebhookType(pub String);
impl WebhookType {
pub const WEBHOOK: &'static str = "webhook";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct WebhookTarget {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<EventSourceItemType>,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct WebhookTriggers(pub String);
impl WebhookTriggers {
pub const FILE_UPLOADED: &'static str = "FILE.UPLOADED";
pub const FILE_PREVIEWED: &'static str = "FILE.PREVIEWED";
pub const FILE_DOWNLOADED: &'static str = "FILE.DOWNLOADED";
pub const FILE_TRASHED: &'static str = "FILE.TRASHED";
pub const FILE_DELETED: &'static str = "FILE.DELETED";
pub const FILE_RESTORED: &'static str = "FILE.RESTORED";
pub const FILE_COPIED: &'static str = "FILE.COPIED";
pub const FILE_MOVED: &'static str = "FILE.MOVED";
pub const FILE_LOCKED: &'static str = "FILE.LOCKED";
pub const FILE_UNLOCKED: &'static str = "FILE.UNLOCKED";
pub const FILE_RENAMED: &'static str = "FILE.RENAMED";
pub const COMMENT_CREATED: &'static str = "COMMENT.CREATED";
pub const COMMENT_UPDATED: &'static str = "COMMENT.UPDATED";
pub const COMMENT_DELETED: &'static str = "COMMENT.DELETED";
pub const TASK_ASSIGNMENT_CREATED: &'static str = "TASK_ASSIGNMENT.CREATED";
pub const TASK_ASSIGNMENT_UPDATED: &'static str = "TASK_ASSIGNMENT.UPDATED";
pub const METADATA_INSTANCE_CREATED: &'static str = "METADATA_INSTANCE.CREATED";
pub const METADATA_INSTANCE_UPDATED: &'static str = "METADATA_INSTANCE.UPDATED";
pub const METADATA_INSTANCE_DELETED: &'static str = "METADATA_INSTANCE.DELETED";
pub const FOLDER_CREATED: &'static str = "FOLDER.CREATED";
pub const FOLDER_RENAMED: &'static str = "FOLDER.RENAMED";
pub const FOLDER_DOWNLOADED: &'static str = "FOLDER.DOWNLOADED";
pub const FOLDER_RESTORED: &'static str = "FOLDER.RESTORED";
pub const FOLDER_DELETED: &'static str = "FOLDER.DELETED";
pub const FOLDER_COPIED: &'static str = "FOLDER.COPIED";
pub const FOLDER_MOVED: &'static str = "FOLDER.MOVED";
pub const FOLDER_TRASHED: &'static str = "FOLDER.TRASHED";
pub const WEBHOOK_DELETED: &'static str = "WEBHOOK.DELETED";
pub const COLLABORATION_CREATED: &'static str = "COLLABORATION.CREATED";
pub const COLLABORATION_ACCEPTED: &'static str = "COLLABORATION.ACCEPTED";
pub const COLLABORATION_REJECTED: &'static str = "COLLABORATION.REJECTED";
pub const COLLABORATION_REMOVED: &'static str = "COLLABORATION.REMOVED";
pub const COLLABORATION_UPDATED: &'static str = "COLLABORATION.UPDATED";
pub const SHARED_LINK_DELETED: &'static str = "SHARED_LINK.DELETED";
pub const SHARED_LINK_CREATED: &'static str = "SHARED_LINK.CREATED";
pub const SHARED_LINK_UPDATED: &'static str = "SHARED_LINK.UPDATED";
pub const SIGN_REQUEST_COMPLETED: &'static str = "SIGN_REQUEST.COMPLETED";
pub const SIGN_REQUEST_DECLINED: &'static str = "SIGN_REQUEST.DECLINED";
pub const SIGN_REQUEST_EXPIRED: &'static str = "SIGN_REQUEST.EXPIRED";
pub const SIGN_REQUEST_SIGNER_EMAIL_BOUNCED: &'static str = "SIGN_REQUEST.SIGNER_EMAIL_BOUNCED";
pub const SIGN_REQUEST_SIGN_SIGNER_SIGNED: &'static str = "SIGN_REQUEST.SIGN_SIGNER_SIGNED";
pub const SIGN_REQUEST_SIGN_DOCUMENT_CREATED: &'static str =
"SIGN_REQUEST.SIGN_DOCUMENT_CREATED";
pub const SIGN_REQUEST_SIGN_ERROR_FINALIZING: &'static str =
"SIGN_REQUEST.SIGN_ERROR_FINALIZING";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct WorkflowType(pub String);
impl WorkflowType {
pub const WORKFLOW: &'static str = "workflow";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct FlowsType(pub String);
impl FlowsType {
pub const FLOW: &'static str = "flow";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct TriggerType(pub String);
impl TriggerType {
pub const TRIGGER: &'static str = "trigger";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct TriggerTriggerType(pub String);
impl TriggerTriggerType {
pub const WORKFLOW_MANUAL_START: &'static str = "WORKFLOW_MANUAL_START";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct ScopeType(pub String);
impl ScopeType {
pub const TRIGGER_SCOPE: &'static str = "trigger_scope";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct TriggerScope {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<ScopeType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#ref: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub object: Option<MetadataCascadePolicyParent>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct FlowsTrigger {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<TriggerType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub trigger_type: Option<TriggerTriggerType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub scope: Option<Vec<TriggerScope>>,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct OutcomesType(pub String);
impl OutcomesType {
pub const OUTCOME: &'static str = "outcome";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct OutcomesActionType(pub String);
impl OutcomesActionType {
pub const ADD_METADATA: &'static str = "add_metadata";
pub const ASSIGN_TASK: &'static str = "assign_task";
pub const COPY_FILE: &'static str = "copy_file";
pub const COPY_FOLDER: &'static str = "copy_folder";
pub const CREATE_FOLDER: &'static str = "create_folder";
pub const DELETE_FILE: &'static str = "delete_file";
pub const DELETE_FOLDER: &'static str = "delete_folder";
pub const LOCK_FILE: &'static str = "lock_file";
pub const MOVE_FILE: &'static str = "move_file";
pub const MOVE_FOLDER: &'static str = "move_folder";
pub const REMOVE_WATERMARK_FILE: &'static str = "remove_watermark_file";
pub const RENAME_FOLDER: &'static str = "rename_folder";
pub const RESTORE_FOLDER: &'static str = "restore_folder";
pub const SHARE_FILE: &'static str = "share_file";
pub const SHARE_FOLDER: &'static str = "share_folder";
pub const UNLOCK_FILE: &'static str = "unlock_file";
pub const UPLOAD_FILE: &'static str = "upload_file";
pub const WAIT_FOR_TASK: &'static str = "wait_for_task";
pub const WATERMARK_FILE: &'static str = "watermark_file";
pub const GO_BACK_TO_STEP: &'static str = "go_back_to_step";
pub const APPLY_FILE_CLASSIFICATION: &'static str = "apply_file_classification";
pub const APPLY_FOLDER_CLASSIFICATION: &'static str = "apply_folder_classification";
pub const SEND_NOTIFICATION: &'static str = "send_notification";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct OutcomesIfRejected {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<OutcomesType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub action_type: Option<OutcomesActionType>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct FlowsOutcomes {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<OutcomesType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub action_type: Option<OutcomesActionType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub if_rejected: Option<Vec<OutcomesIfRejected>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct WorkflowFlows {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<FlowsType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub trigger: Option<FlowsTrigger>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub outcomes: Option<Vec<FlowsOutcomes>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_by: Option<UserBase>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct ZipDownloadNameConflicts {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<EventSourceItemType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub original_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub download_name: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct ZipDownloadRequestItems {
pub r#type: EventSourceItemType,
pub id: String,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct ZipDownloadStatusState(pub String);
impl ZipDownloadStatusState {
pub const IN_PROGRESS: &'static str = "in_progress";
pub const FAILED: &'static str = "failed";
pub const SUCCEEDED: &'static str = "succeeded";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct GetAuthorizeResponseType(pub String);
impl GetAuthorizeResponseType {
pub const CODE: &'static str = "code";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct PutIdParent {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub user_id: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct SharedLinkPermissions2 {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub can_download: Option<bool>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct PutIdSharedLink {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub access: Option<SharedLinkAccess>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub password: Option<Option<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub vanity_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub unshared_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub permissions: Option<SharedLinkPermissions2>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct PutIdLock {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub access: Option<LockType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub expires_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_download_prevented: Option<bool>,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct PermissionsCanDownload(pub String);
impl PermissionsCanDownload {
pub const OPEN: &'static str = "open";
pub const COMPANY: &'static str = "company";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct PutIdPermissions {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub can_download: Option<PermissionsCanDownload>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct FileUpdateRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub parent: Option<PutIdParent>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub shared_link: Option<Option<PutIdSharedLink>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub lock: Option<Option<PutIdLock>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub disposition_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub permissions: Option<PutIdPermissions>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub collections: Option<Option<Vec<CommentItem>>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tags: Option<Vec<String>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct PostFileIdParent {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct FileCreateRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub parent: Option<PostFileIdParent>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct PostFileIdContentAttributes {
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub content_modified_at: Option<chrono::DateTime<chrono::Utc>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct FileIdContentCreateRequest {
pub attributes: PostFileIdContentAttributes,
#[serde(skip)]
pub file: Vec<u8>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct AttributesParent {
pub id: String,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct PostFileContentAttributes {
pub name: String,
pub parent: AttributesParent,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub content_created_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub content_modified_at: Option<chrono::DateTime<chrono::Utc>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct FileContentCreateRequest {
pub attributes: PostFileContentAttributes,
#[serde(skip)]
pub file: Vec<u8>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct OptionFileContentRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub size: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub parent: Option<PostFileIdParent>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct FileUploadSessionCreateRequest {
pub folder_id: String,
pub file_size: i64,
pub file_name: String,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct FileVersionUploadSessionCreateRequest {
pub file_size: i64,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub file_name: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct FileUploadSessionCommitRequest {
pub parts: Vec<UploadPart>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct FileCopyRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub version: Option<String>,
pub parent: AttributesParent,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct GetIdThumbnailIdExtension(pub String);
impl GetIdThumbnailIdExtension {
pub const PNG: &'static str = "png";
pub const JPG: &'static str = "jpg";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct FileVersionUpdateRequest {
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub trashed_at: Option<Option<String>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct FileVersionCurrentCreateRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<FileVersionType>,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct PutOp(pub String);
impl PutOp {
pub const REPLACE: &'static str = "replace";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct PutPath(pub String);
impl PutPath {
pub const BOX_SECURITY_CLASSIFICATION_KEY: &'static str = "/Box__Security__Classification__Key";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct FileClassificationUpdateRequest {
pub op: PutOp,
pub path: PutPath,
pub value: String,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct FileClassificationCreateRequest {
#[serde(
rename = "Box__Security__Classification__Key",
default,
skip_serializing_if = "Option::is_none"
)]
pub box_security_classification_key: Option<String>,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct GetFileIdMetadataIdIdScope(pub String);
impl GetFileIdMetadataIdIdScope {
pub const GLOBAL: &'static str = "global";
pub const ENTERPRISE: &'static str = "enterprise";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct PutFileIdMetadataIdIdOp(pub String);
impl PutFileIdMetadataIdIdOp {
pub const ADD: &'static str = "add";
pub const REPLACE: &'static str = "replace";
pub const REMOVE: &'static str = "remove";
pub const TEST: &'static str = "test";
pub const MOVE: &'static str = "move";
pub const COPY: &'static str = "copy";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct FileMetadataUpdateRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub op: Option<PutFileIdMetadataIdIdOp>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub path: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub value: Option<MetadataInstanceValue>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub from: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct SkillUpdateRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub op: Option<PutOp>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub path: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub value: Option<SkillCard>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct SkillCreateRequest {
pub cards: Vec<SkillCard>,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct WatermarkImprint(pub String);
impl WatermarkImprint {
pub const DEFAULT: &'static str = "default";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct PutFileIdWatermarkWatermark {
pub imprint: WatermarkImprint,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct FileWatermarkUpdateRequest {
pub watermark: PutFileIdWatermarkWatermark,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct GetIdSort(pub String);
impl GetIdSort {
pub const ID: &'static str = "id";
pub const NAME: &'static str = "name";
pub const DATE: &'static str = "date";
pub const SIZE: &'static str = "size";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct PutIdFolderUploadEmail {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub access: Option<FolderUploadEmailAccess>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct FolderUpdateRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub sync_state: Option<FolderFullSyncState>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub can_non_owners_invite: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub parent: Option<PutIdParent>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub shared_link: Option<PutIdSharedLink>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub folder_upload_email: Option<Option<PutIdFolderUploadEmail>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tags: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_collaboration_restricted_to_enterprise: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub collections: Option<Option<Vec<CommentItem>>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub can_non_owners_view_collaborators: Option<bool>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct FolderCreateRequest {
pub name: String,
pub parent: AttributesParent,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub folder_upload_email: Option<PutIdFolderUploadEmail>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub sync_state: Option<FolderFullSyncState>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct FolderCopyRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
pub parent: AttributesParent,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct GetFolderTrashItemsSort(pub String);
impl GetFolderTrashItemsSort {
pub const NAME: &'static str = "name";
pub const DATE: &'static str = "date";
pub const SIZE: &'static str = "size";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct PostFolder {
pub r#type: String,
pub id: String,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct FolderLockCreateRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub locked_operations: Option<FolderLockLockedOperations>,
pub folder: PostFolder,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct PutAddOp(pub String);
impl PutAddOp {
pub const ADDENUMOPTION: &'static str = "addEnumOption";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct PutAddData {
pub key: String,
#[serde(
rename = "staticConfig",
default,
skip_serializing_if = "Option::is_none"
)]
pub static_config: Option<OptionsStaticConfig>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct ClassificationUpdateRequest {
pub op: PutAddOp,
#[serde(rename = "fieldKey")]
pub field_key: FieldsKey,
pub data: PutAddData,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct PutUpdateOp(pub String);
impl PutUpdateOp {
pub const EDITENUMOPTION: &'static str = "editEnumOption";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct ClassificationUpdateRequest2 {
pub op: PutUpdateOp,
#[serde(rename = "fieldKey")]
pub field_key: FieldsKey,
#[serde(rename = "enumOptionKey")]
pub enum_option_key: String,
pub data: PutAddData,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct PutIdIdSchemaOp(pub String);
impl PutIdIdSchemaOp {
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 SchemaUpdateRequest {
pub op: PutIdIdSchemaOp,
#[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 FieldsType3(pub String);
impl FieldsType3 {
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: FieldsType3,
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 SchemaCreateRequest {
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>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct PostMetadataTemplateSchemaClassificationsFields {
pub r#type: FieldsType,
pub key: FieldsKey,
#[serde(rename = "displayName")]
pub display_name: ClassificationTemplateDisplayName,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub hidden: Option<bool>,
pub options: Vec<PutAddData>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct MetadataTemplateSchemaCreateRequest {
pub scope: EnterpriseType,
#[serde(rename = "templateKey")]
pub template_key: ClassificationTemplate2,
#[serde(rename = "displayName")]
pub display_name: ClassificationTemplateDisplayName,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub hidden: Option<bool>,
#[serde(
rename = "copyInstanceOnItemCopy",
default,
skip_serializing_if = "Option::is_none"
)]
pub copy_instance_on_item_copy: Option<bool>,
pub fields: Vec<PostMetadataTemplateSchemaClassificationsFields>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct MetadataCascadePolicyCreateRequest {
pub folder_id: String,
pub scope: GetFileIdMetadataIdIdScope,
#[serde(rename = "templateKey")]
pub template_key: String,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct PostIdApplyConflictResolution(pub String);
impl PostIdApplyConflictResolution {
pub const NONE: &'static str = "none";
pub const OVERWRITE: &'static str = "overwrite";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct MetadataCascadePolicyApplyRequest {
pub conflict_resolution: PostIdApplyConflictResolution,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct CommentUpdateRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct ItemType(pub String);
impl ItemType {
pub const FILE: &'static str = "file";
pub const COMMENT: &'static str = "comment";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct PostItem {
pub id: String,
pub r#type: ItemType,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct CommentCreateRequest {
pub message: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tagged_message: Option<String>,
pub item: PostItem,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct PutCollaborationIdStatus(pub String);
impl PutCollaborationIdStatus {
pub const PENDING: &'static str = "pending";
pub const ACCEPTED: &'static str = "accepted";
pub const REJECTED: &'static str = "rejected";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct CollaborationUpdateRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub role: Option<CollaborationRole>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status: Option<PutCollaborationIdStatus>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub expires_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub can_view_path: Option<bool>,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct GetCollaborationsStatus(pub String);
impl GetCollaborationsStatus {
pub const PENDING: &'static str = "pending";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct PostCollaborationsItem {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<EventSourceItemType>,
#[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 AccessibleByType(pub String);
impl AccessibleByType {
pub const USER: &'static str = "user";
pub const GROUP: &'static str = "group";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct PostCollaborationsAccessibleBy {
pub r#type: AccessibleByType,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub login: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct CollaborationsCreateRequest {
pub item: PostCollaborationsItem,
pub accessible_by: PostCollaborationsAccessibleBy,
pub role: FileFullAllowedInviteeRoles,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_access_only: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub can_view_path: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub expires_at: Option<chrono::DateTime<chrono::Utc>>,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct GetScope(pub String);
impl GetScope {
pub const USER_CONTENT: &'static str = "user_content";
pub const ENTERPRISE_CONTENT: &'static str = "enterprise_content";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct GetContentTypes(pub String);
impl GetContentTypes {
pub const NAME: &'static str = "name";
pub const DESCRIPTION: &'static str = "description";
pub const FILE_CONTENT: &'static str = "file_content";
pub const COMMENTS: &'static str = "comments";
pub const TAGS: &'static str = "tags";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct GetType(pub String);
impl GetType {
pub const FILE: &'static str = "file";
pub const FOLDER: &'static str = "folder";
pub const WEB_LINK: &'static str = "web_link";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct GetTrashContent(pub String);
impl GetTrashContent {
pub const NON_TRASHED_ONLY: &'static str = "non_trashed_only";
pub const TRASHED_ONLY: &'static str = "trashed_only";
pub const ALL_ITEMS: &'static str = "all_items";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct GetSort(pub String);
impl GetSort {
pub const MODIFIED_AT: &'static str = "modified_at";
pub const RELEVANCE: &'static str = "relevance";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct GetDirection(pub String);
impl GetDirection {
pub const DESC: &'static str = "DESC";
pub const ASC: &'static str = "ASC";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct PostItem2 {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<AiCitationType>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct TaskCreateRequest {
pub item: PostItem2,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub action: Option<TaskAction>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub due_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub completion_rule: Option<TaskCompletionRule>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct TaskUpdateRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub action: Option<TaskAction>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub due_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub completion_rule: Option<TaskCompletionRule>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct PostTask {
pub id: String,
pub r#type: TaskType,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct PostAssignTo {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub login: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct TaskAssignmentCreateRequest {
pub task: PostTask,
pub assign_to: PostAssignTo,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct TaskAssignmentUpdateRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub resolution_state: Option<TaskAssignmentResolutionState>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct SharedLinkPermissions3 {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub can_download: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub can_preview: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub can_edit: Option<bool>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct PutFileIdAddSharedLinkSharedLink {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub access: Option<SharedLinkAccess>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub password: Option<Option<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub vanity_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub unshared_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub permissions: Option<SharedLinkPermissions3>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct FileUpdateRequest2 {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub shared_link: Option<PutFileIdAddSharedLinkSharedLink>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct FileUpdateRequest3 {
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub shared_link: Option<Option<std::collections::HashMap<String, serde_json::Value>>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct PutFolderIdUpdateSharedLinkSharedLink {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub access: Option<SharedLinkAccess>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub password: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub vanity_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub unshared_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub permissions: Option<SharedLinkPermissions3>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct FolderUpdateRequest2 {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub shared_link: Option<PutFolderIdUpdateSharedLinkSharedLink>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct WebLinkCreateRequest {
pub url: String,
pub parent: AttributesParent,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct PutIdSharedLink2 {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub access: Option<SharedLinkAccess>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub password: Option<Option<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub vanity_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub unshared_at: Option<chrono::DateTime<chrono::Utc>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct WebLinkUpdateRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub url: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub parent: Option<PutIdParent>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub shared_link: Option<PutIdSharedLink2>,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct GetUserType(pub String);
impl GetUserType {
pub const ALL: &'static str = "all";
pub const MANAGED: &'static str = "managed";
pub const EXTERNAL: &'static str = "external";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct PostRole(pub String);
impl PostRole {
pub const COADMIN: &'static str = "coadmin";
pub const USER: &'static str = "user";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct UserCreateRequest {
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub login: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_platform_access_only: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub role: Option<PostRole>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub language: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_sync_enabled: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub job_title: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub phone: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub address: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub space_amount: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tracking_codes: Option<Vec<TrackingCode>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub can_see_managed_users: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub timezone: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_external_collab_restricted: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_exempt_from_device_limits: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_exempt_from_login_verification: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status: Option<UserStatus>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub external_app_user_id: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct UserTerminateSessionsCreateRequest {
pub user_ids: Vec<String>,
pub user_logins: Vec<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct PutIdNotificationEmail {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub email: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct UserUpdateRequest {
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub enterprise: Option<Option<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub notify: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub login: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub role: Option<PostRole>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub language: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_sync_enabled: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub job_title: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub phone: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub address: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tracking_codes: Option<Vec<TrackingCode>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub can_see_managed_users: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub timezone: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_external_collab_restricted: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_exempt_from_device_limits: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_exempt_from_login_verification: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_password_reset_required: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status: Option<UserStatus>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub space_amount: Option<i64>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub notification_email: Option<Option<PutIdNotificationEmail>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub external_app_user_id: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct UserAvatarCreateRequest {
#[serde(skip)]
pub pic: Vec<u8>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct UserFolder0UpdateRequest {
pub owned_by: AttributesParent,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct UserIdCreateRequest {
pub email: String,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct PostActionableBy {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub login: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct InviteCreateRequest {
pub enterprise: AttributesParent,
pub actionable_by: PostActionableBy,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct GroupCreateRequest {
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub provenance: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub external_sync_identifier: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub invitability_level: Option<GroupFullInvitabilityLevel>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub member_viewability_level: Option<GroupFullInvitabilityLevel>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct GroupTerminateSessionsCreateRequest {
pub group_ids: Vec<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct GroupUpdateRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub provenance: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub external_sync_identifier: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub invitability_level: Option<GroupFullInvitabilityLevel>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub member_viewability_level: Option<GroupFullInvitabilityLevel>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct GroupCreateRequest2 {
pub user: AttributesParent,
pub group: AttributesParent,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub role: Option<GroupMembershipRole>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub configurable_permissions: Option<Option<std::collections::HashMap<String, bool>>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct GroupUpdateRequest2 {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub role: Option<GroupMembershipRole>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub configurable_permissions: Option<Option<std::collections::HashMap<String, bool>>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct WebhookCreateRequest {
pub target: WebhookTarget,
pub address: String,
pub triggers: Vec<WebhookTriggers>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct WebhookUpdateRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub target: Option<WebhookTarget>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub address: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub triggers: Option<Vec<WebhookTriggers>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct PutSkillInvocationIdMetadata {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub cards: Option<Vec<SkillCard>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct PutSkillInvocationIdFile {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<AiCitationType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct PutSkillInvocationIdFileVersion {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<FileVersionType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct PutSkillInvocationIdUsage {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub unit: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub value: Option<f64>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct SkillInvocationUpdateRequest {
pub status: StatusCode,
pub metadata: PutSkillInvocationIdMetadata,
pub file: PutSkillInvocationIdFile,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub file_version: Option<PutSkillInvocationIdFileVersion>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub usage: Option<PutSkillInvocationIdUsage>,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct GetStreamType(pub String);
impl GetStreamType {
pub const ALL: &'static str = "all";
pub const CHANGES: &'static str = "changes";
pub const SYNC: &'static str = "sync";
pub const ADMIN_LOGS: &'static str = "admin_logs";
pub const ADMIN_LOGS_STREAMING: &'static str = "admin_logs_streaming";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct GetEventType(pub String);
impl GetEventType {
pub const ACCESS_GRANTED: &'static str = "ACCESS_GRANTED";
pub const ACCESS_REVOKED: &'static str = "ACCESS_REVOKED";
pub const ADD_DEVICE_ASSOCIATION: &'static str = "ADD_DEVICE_ASSOCIATION";
pub const ADD_LOGIN_ACTIVITY_DEVICE: &'static str = "ADD_LOGIN_ACTIVITY_DEVICE";
pub const ADMIN_LOGIN: &'static str = "ADMIN_LOGIN";
pub const ADVANCED_FOLDER_SETTINGS_UPDATE: &'static str = "ADVANCED_FOLDER_SETTINGS_UPDATE";
pub const APPLICATION_CREATED: &'static str = "APPLICATION_CREATED";
pub const APPLICATION_PUBLIC_KEY_ADDED: &'static str = "APPLICATION_PUBLIC_KEY_ADDED";
pub const APPLICATION_PUBLIC_KEY_DELETED: &'static str = "APPLICATION_PUBLIC_KEY_DELETED";
pub const CHANGE_ADMIN_ROLE: &'static str = "CHANGE_ADMIN_ROLE";
pub const CHANGE_FOLDER_PERMISSION: &'static str = "CHANGE_FOLDER_PERMISSION";
pub const COLLABORATION_ACCEPT: &'static str = "COLLABORATION_ACCEPT";
pub const COLLABORATION_EXPIRATION: &'static str = "COLLABORATION_EXPIRATION";
pub const COLLABORATION_INVITE: &'static str = "COLLABORATION_INVITE";
pub const COLLABORATION_REMOVE: &'static str = "COLLABORATION_REMOVE";
pub const COLLABORATION_ROLE_CHANGE: &'static str = "COLLABORATION_ROLE_CHANGE";
pub const COMMENT_CREATE: &'static str = "COMMENT_CREATE";
pub const COMMENT_DELETE: &'static str = "COMMENT_DELETE";
pub const COMMENT_EDIT: &'static str = "COMMENT_EDIT";
pub const CONTENT_WORKFLOW_ABNORMAL_DOWNLOAD_ACTIVITY: &'static str =
"CONTENT_WORKFLOW_ABNORMAL_DOWNLOAD_ACTIVITY";
pub const CONTENT_WORKFLOW_AUTOMATION_ADD: &'static str = "CONTENT_WORKFLOW_AUTOMATION_ADD";
pub const CONTENT_WORKFLOW_AUTOMATION_DELETE: &'static str =
"CONTENT_WORKFLOW_AUTOMATION_DELETE";
pub const CONTENT_WORKFLOW_POLICY_ADD: &'static str = "CONTENT_WORKFLOW_POLICY_ADD";
pub const CONTENT_WORKFLOW_SHARING_POLICY_VIOLATION: &'static str =
"CONTENT_WORKFLOW_SHARING_POLICY_VIOLATION";
pub const CONTENT_WORKFLOW_UPLOAD_POLICY_VIOLATION: &'static str =
"CONTENT_WORKFLOW_UPLOAD_POLICY_VIOLATION";
pub const COPY: &'static str = "COPY";
pub const DATA_RETENTION_CREATE_RETENTION: &'static str = "DATA_RETENTION_CREATE_RETENTION";
pub const DATA_RETENTION_REMOVE_RETENTION: &'static str = "DATA_RETENTION_REMOVE_RETENTION";
pub const DELETE: &'static str = "DELETE";
pub const DELETE_USER: &'static str = "DELETE_USER";
pub const DEVICE_TRUST_CHECK_FAILED: &'static str = "DEVICE_TRUST_CHECK_FAILED";
pub const DOWNLOAD: &'static str = "DOWNLOAD";
pub const EDIT: &'static str = "EDIT";
pub const EDIT_USER: &'static str = "EDIT_USER";
pub const EMAIL_ALIAS_CONFIRM: &'static str = "EMAIL_ALIAS_CONFIRM";
pub const EMAIL_ALIAS_PRIMARY: &'static str = "EMAIL_ALIAS_PRIMARY";
pub const EMAIL_ALIAS_REMOVE: &'static str = "EMAIL_ALIAS_REMOVE";
pub const EMAIL_UPLOAD_DISABLED: &'static str = "EMAIL_UPLOAD_DISABLED";
pub const EMAIL_UPLOAD_ENABLED: &'static str = "EMAIL_UPLOAD_ENABLED";
pub const ENTERPRISE_APP_AUTHORIZATION_UPDATE: &'static str =
"ENTERPRISE_APP_AUTHORIZATION_UPDATE";
pub const EXTERNAL_COLLAB_SECURITY_SETTINGS: &'static str = "EXTERNAL_COLLAB_SECURITY_SETTINGS";
pub const FAILED_LOGIN: &'static str = "FAILED_LOGIN";
pub const FAVORITE: &'static str = "FAVORITE";
pub const FILE_MARKED_MALICIOUS: &'static str = "FILE_MARKED_MALICIOUS";
pub const FILE_REQUEST_CREATE: &'static str = "FILE_REQUEST_CREATE";
pub const FILE_REQUEST_DELETE: &'static str = "FILE_REQUEST_DELETE";
pub const FILE_REQUEST_UPDATE: &'static str = "FILE_REQUEST_UPDATE";
pub const FILE_VERSION_RESTORE: &'static str = "FILE_VERSION_RESTORE";
pub const FILE_WATERMARKED_DOWNLOAD: &'static str = "FILE_WATERMARKED_DOWNLOAD";
pub const GROUP_ADD_ITEM: &'static str = "GROUP_ADD_ITEM";
pub const GROUP_ADD_USER: &'static str = "GROUP_ADD_USER";
pub const GROUP_CREATION: &'static str = "GROUP_CREATION";
pub const GROUP_DELETION: &'static str = "GROUP_DELETION";
pub const GROUP_EDITED: &'static str = "GROUP_EDITED";
pub const GROUP_REMOVE_ITEM: &'static str = "GROUP_REMOVE_ITEM";
pub const GROUP_REMOVE_USER: &'static str = "GROUP_REMOVE_USER";
pub const ILLEGAL_ITEM_OWNERSHIP_TRANSFER_BY_USER: &'static str =
"ILLEGAL_ITEM_OWNERSHIP_TRANSFER_BY_USER";
pub const ITEM_EMAIL_SEND: &'static str = "ITEM_EMAIL_SEND";
pub const ITEM_MODIFY: &'static str = "ITEM_MODIFY";
pub const ITEM_OPEN: &'static str = "ITEM_OPEN";
pub const ITEM_SHARED_UPDATE: &'static str = "ITEM_SHARED_UPDATE";
pub const ITEM_SYNC: &'static str = "ITEM_SYNC";
pub const ITEM_UNSYNC: &'static str = "ITEM_UNSYNC";
pub const LEGAL_HOLD_ASSIGNMENT_CREATE: &'static str = "LEGAL_HOLD_ASSIGNMENT_CREATE";
pub const LEGAL_HOLD_ASSIGNMENT_DELETE: &'static str = "LEGAL_HOLD_ASSIGNMENT_DELETE";
pub const LEGAL_HOLD_POLICY_CREATE: &'static str = "LEGAL_HOLD_POLICY_CREATE";
pub const LEGAL_HOLD_POLICY_DELETE: &'static str = "LEGAL_HOLD_POLICY_DELETE";
pub const LEGAL_HOLD_POLICY_UPDATE: &'static str = "LEGAL_HOLD_POLICY_UPDATE";
pub const LOCK: &'static str = "LOCK";
pub const LOGIN: &'static str = "LOGIN";
pub const METADATA_CASCADE_POLICY_APPLY: &'static str = "METADATA_CASCADE_POLICY_APPLY";
pub const METADATA_CASCADE_POLICY_CREATE: &'static str = "METADATA_CASCADE_POLICY_CREATE";
pub const METADATA_INSTANCE_COPY: &'static str = "METADATA_INSTANCE_COPY";
pub const METADATA_INSTANCE_CREATE: &'static str = "METADATA_INSTANCE_CREATE";
pub const METADATA_INSTANCE_DELETE: &'static str = "METADATA_INSTANCE_DELETE";
pub const METADATA_INSTANCE_UPDATE: &'static str = "METADATA_INSTANCE_UPDATE";
pub const METADATA_TEMPLATE_CREATE: &'static str = "METADATA_TEMPLATE_CREATE";
pub const METADATA_TEMPLATE_DELETE: &'static str = "METADATA_TEMPLATE_DELETE";
pub const METADATA_TEMPLATE_UPDATE: &'static str = "METADATA_TEMPLATE_UPDATE";
pub const MOVE: &'static str = "MOVE";
pub const NEW_USER: &'static str = "NEW_USER";
pub const OAUTH2_ACCESS_TOKEN_REVOKE: &'static str = "OAUTH2_ACCESS_TOKEN_REVOKE";
pub const OAUTH2_REFRESH_TOKEN_REVOKE: &'static str = "OAUTH2_REFRESH_TOKEN_REVOKE";
pub const PREVIEW: &'static str = "PREVIEW";
pub const REMOVE_DEVICE_ASSOCIATION: &'static str = "REMOVE_DEVICE_ASSOCIATION";
pub const REMOVE_LOGIN_ACTIVITY_DEVICE: &'static str = "REMOVE_LOGIN_ACTIVITY_DEVICE";
pub const RENAME: &'static str = "RENAME";
pub const RETENTION_POLICY_ASSIGNMENT_ADD: &'static str = "RETENTION_POLICY_ASSIGNMENT_ADD";
pub const SHARE: &'static str = "SHARE";
pub const SHARED_LINK_SEND: &'static str = "SHARED_LINK_SEND";
pub const SHARE_EXPIRATION: &'static str = "SHARE_EXPIRATION";
pub const SHIELD_ALERT: &'static str = "SHIELD_ALERT";
pub const SHIELD_EXTERNAL_COLLAB_ACCESS_BLOCKED: &'static str =
"SHIELD_EXTERNAL_COLLAB_ACCESS_BLOCKED";
pub const SHIELD_EXTERNAL_COLLAB_ACCESS_BLOCKED_MISSING_JUSTIFICATION: &'static str =
"SHIELD_EXTERNAL_COLLAB_ACCESS_BLOCKED_MISSING_JUSTIFICATION";
pub const SHIELD_EXTERNAL_COLLAB_INVITE_BLOCKED: &'static str =
"SHIELD_EXTERNAL_COLLAB_INVITE_BLOCKED";
pub const SHIELD_EXTERNAL_COLLAB_INVITE_BLOCKED_MISSING_JUSTIFICATION: &'static str =
"SHIELD_EXTERNAL_COLLAB_INVITE_BLOCKED_MISSING_JUSTIFICATION";
pub const SHIELD_JUSTIFICATION_APPROVAL: &'static str = "SHIELD_JUSTIFICATION_APPROVAL";
pub const SHIELD_SHARED_LINK_ACCESS_BLOCKED: &'static str = "SHIELD_SHARED_LINK_ACCESS_BLOCKED";
pub const SHIELD_SHARED_LINK_STATUS_RESTRICTED_ON_CREATE: &'static str =
"SHIELD_SHARED_LINK_STATUS_RESTRICTED_ON_CREATE";
pub const SHIELD_SHARED_LINK_STATUS_RESTRICTED_ON_UPDATE: &'static str =
"SHIELD_SHARED_LINK_STATUS_RESTRICTED_ON_UPDATE";
pub const SIGN_DOCUMENT_ASSIGNED: &'static str = "SIGN_DOCUMENT_ASSIGNED";
pub const SIGN_DOCUMENT_CANCELLED: &'static str = "SIGN_DOCUMENT_CANCELLED";
pub const SIGN_DOCUMENT_COMPLETED: &'static str = "SIGN_DOCUMENT_COMPLETED";
pub const SIGN_DOCUMENT_CONVERTED: &'static str = "SIGN_DOCUMENT_CONVERTED";
pub const SIGN_DOCUMENT_CREATED: &'static str = "SIGN_DOCUMENT_CREATED";
pub const SIGN_DOCUMENT_DECLINED: &'static str = "SIGN_DOCUMENT_DECLINED";
pub const SIGN_DOCUMENT_EXPIRED: &'static str = "SIGN_DOCUMENT_EXPIRED";
pub const SIGN_DOCUMENT_SIGNED: &'static str = "SIGN_DOCUMENT_SIGNED";
pub const SIGN_DOCUMENT_VIEWED_BY_SIGNED: &'static str = "SIGN_DOCUMENT_VIEWED_BY_SIGNED";
pub const SIGNER_DOWNLOADED: &'static str = "SIGNER_DOWNLOADED";
pub const SIGNER_FORWARDED: &'static str = "SIGNER_FORWARDED";
pub const STORAGE_EXPIRATION: &'static str = "STORAGE_EXPIRATION";
pub const TASK_ASSIGNMENT_CREATE: &'static str = "TASK_ASSIGNMENT_CREATE";
pub const TASK_ASSIGNMENT_DELETE: &'static str = "TASK_ASSIGNMENT_DELETE";
pub const TASK_ASSIGNMENT_UPDATE: &'static str = "TASK_ASSIGNMENT_UPDATE";
pub const TASK_CREATE: &'static str = "TASK_CREATE";
pub const TASK_UPDATE: &'static str = "TASK_UPDATE";
pub const TERMS_OF_SERVICE_ACCEPT: &'static str = "TERMS_OF_SERVICE_ACCEPT";
pub const TERMS_OF_SERVICE_REJECT: &'static str = "TERMS_OF_SERVICE_REJECT";
pub const UNDELETE: &'static str = "UNDELETE";
pub const UNFAVORITE: &'static str = "UNFAVORITE";
pub const UNLOCK: &'static str = "UNLOCK";
pub const UNSHARE: &'static str = "UNSHARE";
pub const UPDATE_COLLABORATION_EXPIRATION: &'static str = "UPDATE_COLLABORATION_EXPIRATION";
pub const UPDATE_SHARE_EXPIRATION: &'static str = "UPDATE_SHARE_EXPIRATION";
pub const UPLOAD: &'static str = "UPLOAD";
pub const USER_AUTHENTICATE_OAUTH2_ACCESS_TOKEN_CREATE: &'static str =
"USER_AUTHENTICATE_OAUTH2_ACCESS_TOKEN_CREATE";
pub const WATERMARK_LABEL_CREATE: &'static str = "WATERMARK_LABEL_CREATE";
pub const WATERMARK_LABEL_DELETE: &'static str = "WATERMARK_LABEL_DELETE";
pub const WORKFLOW_AUTOMATION_CREATE: &'static str = "WORKFLOW_AUTOMATION_CREATE";
pub const WORKFLOW_AUTOMATION_DELETE: &'static str = "WORKFLOW_AUTOMATION_DELETE";
pub const WORKFLOW_AUTOMATION_UPDATE: &'static str = "WORKFLOW_AUTOMATION_UPDATE";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct PostRetentionLength(pub serde_json::Value);
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct RetentionPolicyCreateRequest {
pub policy_name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
pub policy_type: RetentionPolicyPolicyType,
pub disposition_action: RetentionPolicyDispositionAction,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub retention_length: Option<PostRetentionLength>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub retention_type: Option<RetentionPolicyRetentionType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub can_owner_extend_retention: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub max_extension_length: Option<RetentionPolicyMaxExtensionLengthRequest>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub are_owners_notified: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub custom_notification_recipients: Option<Vec<UserMini>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct PutIdDispositionAction(pub serde_json::Value);
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct RetentionPolicyUpdateRequest {
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub policy_name: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub description: Option<Option<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub disposition_action: Option<PutIdDispositionAction>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub retention_type: Option<Option<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub retention_length: Option<PostRetentionLength>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub status: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub can_owner_extend_retention: Option<Option<bool>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub max_extension_length: Option<RetentionPolicyMaxExtensionLengthRequest>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub are_owners_notified: Option<Option<bool>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub custom_notification_recipients: Option<Option<Vec<UserBase>>>,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct AssignToType(pub String);
impl AssignToType {
pub const ENTERPRISE: &'static str = "enterprise";
pub const FOLDER: &'static str = "folder";
pub const METADATA_TEMPLATE: &'static str = "metadata_template";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct PostAssignTo2 {
pub r#type: AssignToType,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub id: Option<Option<String>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct PostFilterFields {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub field: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub value: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct RetentionPolicyAssignmentCreateRequest {
pub policy_id: String,
pub assign_to: PostAssignTo2,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub filter_fields: Option<Vec<PostFilterFields>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub start_date_field: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct LegalHoldPolicyCreateRequest {
pub policy_name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub filter_started_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub filter_ended_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_ongoing: Option<bool>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct LegalHoldPolicyUpdateRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub policy_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub release_notes: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct PostAssignTo3 {
pub r#type: LegalHoldPolicyAssignedItemType,
pub id: String,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct LegalHoldPolicyAssignmentCreateRequest {
pub policy_id: String,
pub assign_to: PostAssignTo3,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct PostChangeStatusStatus(pub String);
impl PostChangeStatusStatus {
pub const PENDING: &'static str = "pending";
pub const DISABLED: &'static str = "disabled";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct ChangeStatusCreateRequest {
pub id: String,
pub status: PostChangeStatusStatus,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct ShieldInformationBarrierCreateRequest {
pub enterprise: EnterpriseBase,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct ShieldInformationBarrierSegmentUpdateRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub description: Option<Option<String>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct ShieldInformationBarrierSegmentCreateRequest {
pub shield_information_barrier: ShieldInformationBarrierBase,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct ShieldInformationBarrierSegmentMemberCreateRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<ShieldInformationBarrierSegmentMemberType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub shield_information_barrier: Option<ShieldInformationBarrierBase>,
pub shield_information_barrier_segment:
ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegment,
pub user: UserBase,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct ShieldInformationBarrierSegmentRestrictionCreateRequest {
pub r#type: ShieldInformationBarrierSegmentRestrictionType,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub shield_information_barrier: Option<ShieldInformationBarrierBase>,
pub shield_information_barrier_segment:
ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegment,
pub restricted_segment: ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegment,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct GetTosType(pub String);
impl GetTosType {
pub const EXTERNAL: &'static str = "external";
pub const MANAGED: &'static str = "managed";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct TermsOfServiceCreateRequest {
pub status: TermsOfServiceStatus,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tos_type: Option<GetTosType>,
pub text: String,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct TermsOfServiceUpdateRequest {
pub status: TermsOfServiceStatus,
pub text: String,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct PostTos {
pub r#type: TermsOfServiceType,
pub id: String,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct TermsOfServiceUserStatuseCreateRequest {
pub tos: PostTos,
pub user: CollaboratorVariableVariableValue,
pub is_accepted: bool,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct TermsOfServiceUserStatuseUpdateRequest {
pub is_accepted: bool,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct CollaborationWhitelistEntriesCreateRequest {
pub domain: String,
pub direction: CollaborationAllowlistEntryDirection,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct CollaborationWhitelistExemptTargetsCreateRequest {
pub user: AttributesParent,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct GetResolvedForType(pub String);
impl GetResolvedForType {
pub const USER: &'static str = "user";
pub const ENTERPRISE: &'static str = "enterprise";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct PostStoragePolicy {
pub r#type: StoragePolicyType,
pub id: String,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct PostAssignedTo {
pub r#type: GetResolvedForType,
pub id: String,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct StoragePolicyAssignmentCreateRequest {
pub storage_policy: PostStoragePolicy,
pub assigned_to: PostAssignedTo,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct StoragePolicyAssignmentUpdateRequest {
pub storage_policy: PostStoragePolicy,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct PostIdStartType(pub String);
impl PostIdStartType {
pub const WORKFLOW_PARAMETERS: &'static str = "workflow_parameters";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct PostIdStartFlow {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct WorkflowStartRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<PostIdStartType>,
pub flow: PostIdStartFlow,
pub files: Vec<PutSkillInvocationIdFile>,
pub folder: MetadataCascadePolicyParent,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub outcomes: Option<Vec<Outcome>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct SlackUpdateRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub box_item: Option<IntegrationMappingBoxItemSlack>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub options: Option<IntegrationMappingSlackOptions>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct TeamUpdateRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub box_item: Option<FolderReference>,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct GetAgentDefaultMode(pub String);
impl GetAgentDefaultMode {
pub const ASK: &'static str = "ask";
pub const TEXT_GEN: &'static str = "text_gen";
pub const EXTRACT: &'static str = "extract";
pub const EXTRACT_STRUCTURED: &'static str = "extract_structured";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct MetadataTaxonomyCreateRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub key: Option<String>,
#[serde(rename = "displayName")]
pub display_name: String,
pub namespace: String,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct MetadataTaxonomyUpdateRequest {
#[serde(rename = "displayName")]
pub display_name: String,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct LevelUpdateRequest {
#[serde(rename = "displayName")]
pub display_name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct NodesCreateRequest {
#[serde(rename = "displayName")]
pub display_name: String,
pub level: i64,
#[serde(rename = "parentId", default, skip_serializing_if = "Option::is_none")]
pub parent_id: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct NodeUpdateRequest {
#[serde(
rename = "displayName",
default,
skip_serializing_if = "Option::is_none"
)]
pub display_name: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct Archive {
pub id: String,
pub r#type: ArchiveType,
pub name: String,
pub size: i64,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub description: Option<Option<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub owned_by: Option<ArchiveOwnedBy>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct Archives {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub entries: Option<Vec<Archive>>,
#[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>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct CollaborationPermissions {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_co_owner_role_enabled: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_editor_role_enabled: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_previewer_role_enabled: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_previewer_uploader_role_enabled: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_uploader_role_enabled: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_viewer_role_enabled: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_viewer_uploader_role_enabled: Option<bool>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct CustomSessionDurationGroupItem {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct DocGenBatchBase {
pub id: String,
pub r#type: DocGenBatchBaseType,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct DocGenBatchCreateRequest {
pub file: FileReference,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub file_version: Option<FileVersionBase>,
pub input_source: String,
pub destination_folder: DocGenBatchCreateRequestDestinationFolder,
pub output_type: String,
pub document_generation_data: Vec<DocGenDocumentGenerationData>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct DocGenDocumentGenerationData {
pub generated_file_name: String,
pub user_input: std::collections::HashMap<String, serde_json::Value>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct DocGenJob {
pub id: String,
pub r#type: DocGenJobType,
pub batch: DocGenBatchBase,
pub template_file: FileReference,
pub template_file_version: FileVersionBase,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub output_file: Option<DocGenJobOutputFile>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub output_file_version: Option<DocGenJobOutputFileVersion>,
pub status: DocGenJobStatus,
pub output_type: String,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub failures: Option<Option<DocGenJobFailures>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct DocGenJobBase {
pub id: String,
pub r#type: DocGenJobType,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct DocGenJobFull {
pub id: String,
pub r#type: DocGenJobType,
pub batch: DocGenBatchBase,
pub template_file: FileReference,
pub template_file_version: FileVersionBase,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub output_file: Option<DocGenJobOutputFile>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub output_file_version: Option<DocGenJobOutputFileVersion>,
pub status: DocGenJobStatus,
pub output_type: String,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub failures: Option<Option<DocGenJobFailures>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<String>,
pub created_by: UserBase,
pub enterprise: EnterpriseReference,
pub source: String,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct DocGenJobs {
#[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<DocGenJob>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct DocGenJobsFull {
#[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<DocGenJobFull>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct DocGenTag {
pub tag_content: String,
pub tag_type: DocGenTagTagType,
pub json_paths: Vec<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct DocGenTags {
#[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<DocGenTag>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct DocGenTagsProcessingMessage {
pub message: String,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct DocGenTemplate {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub file: Option<FileReference>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub file_name: Option<Option<String>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct DocGenTemplateBase {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub file: Option<FileReference>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct DocGenTemplateCreateRequest {
pub file: FileReference,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct DocGenTemplates {
#[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<DocGenTemplate>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct EnterpriseConfiguration {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<EnterpriseConfigurationType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub security: Option<EnterpriseConfigurationSecurity2>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub content_and_sharing: Option<EnterpriseConfigurationContentAndSharing2>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub user_settings: Option<EnterpriseConfigurationUserSettings2>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub shield: Option<EnterpriseConfigurationShield2>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct EnterpriseConfigurationContentAndSharing {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub enterprise_feature_settings: Option<Vec<EnterpriseFeatureSettingsItem>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub sharing_item_type: Option<EnterpriseConfigurationItemString>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub shared_link_company_definition: Option<EnterpriseConfigurationItemString>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub shared_link_access: Option<EnterpriseConfigurationItemString>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub shared_link_default_access: Option<EnterpriseConfigurationItemString>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub shared_link_default_permissions_selected:
Option<EnterpriseConfigurationContentAndSharingSharedLinkDefaultPermissionsSelected>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_open_custom_urls_disabled: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_custom_domain_hidden_in_shared_link: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub collaboration_permissions:
Option<EnterpriseConfigurationContentAndSharingCollaborationPermissions>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub default_collaboration_role: Option<EnterpriseConfigurationItemString>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_invite_privilege_restricted: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub collaboration_restrictions:
Option<EnterpriseConfigurationContentAndSharingCollaborationRestrictions>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_collaborator_invite_links_disabled: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_invite_group_collaborator_disabled: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_ownership_transfer_restricted: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub external_collaboration_status:
Option<EnterpriseConfigurationContentAndSharingExternalCollaborationStatus>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub external_collaboration_allowlist_users:
Option<EnterpriseConfigurationContentAndSharingExternalCollaborationAllowlistUsers>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_watermarking_enterprise_feature_enabled: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_root_content_creation_restricted: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_tag_creation_restricted: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tag_creation_restriction: Option<EnterpriseConfigurationItemString>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_email_uploads_enabled: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_custom_settings_enabled: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_forms_login_required: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_forms_branding_default_enabled: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_cc_free_trial_active: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_file_request_editors_allowed: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_file_request_branding_default_enabled: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_file_request_login_required: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_shared_links_expiration_enabled: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub shared_links_expiration_days: Option<EnterpriseConfigurationItemInteger>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_public_shared_links_expiration_enabled: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub public_shared_links_expiration_days: Option<EnterpriseConfigurationItemInteger>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub shared_expiration_target: Option<EnterpriseConfigurationItemString>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_shared_links_expiration_notification_enabled: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub shared_links_expiration_notification_days: Option<EnterpriseConfigurationItemInteger>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_shared_links_expiration_notification_prevented:
Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_auto_delete_enabled: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub auto_delete_days: Option<EnterpriseConfigurationItemInteger>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_auto_delete_expiration_modification_prevented:
Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub auto_delete_target: Option<EnterpriseConfigurationItemString>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_collaboration_expiration_enabled: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub collaboration_expiration_days: Option<EnterpriseConfigurationItemInteger>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_collaboration_expiration_modification_prevented:
Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_collaboration_expiration_notification_enabled:
Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub collaboration_expiration_target: Option<EnterpriseConfigurationItemString>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub trash_auto_clear_time: Option<EnterpriseConfigurationItemInteger>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub permanent_deletion_access: Option<EnterpriseConfigurationItemString>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub permanent_deletion_allowlist_users:
Option<EnterpriseConfigurationContentAndSharingExternalCollaborationAllowlistUsers>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct EnterpriseConfigurationItem {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_used: Option<bool>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct EnterpriseConfigurationItemBoolean {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_used: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub value: Option<Option<bool>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct EnterpriseConfigurationItemInteger {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_used: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub value: Option<Option<i64>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct EnterpriseConfigurationItemString {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_used: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub value: Option<Option<String>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct EnterpriseConfigurationSecurity {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_managed_user_signup_enabled: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_managed_user_signup_notification_enabled: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_managed_user_signup_corporate_email_enabled: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_new_user_notification_daily_digest_enabled: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_managed_user_email_change_disabled: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_multi_factor_auth_required: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_weak_password_prevention_enabled: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_password_leak_detection_enabled: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub last_password_reset_at: Option<EnterpriseConfigurationSecurityLastPasswordResetAt>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_password_request_notification_enabled: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_password_change_notification_enabled: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_strong_password_for_ext_collab_enabled: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_managed_user_migration_disabled: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub join_link: Option<EnterpriseConfigurationItemString>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub join_url: Option<EnterpriseConfigurationItemString>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub failed_login_attempts_to_trigger_admin_notification:
Option<EnterpriseConfigurationItemInteger>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub password_min_length: Option<EnterpriseConfigurationItemInteger>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub password_min_uppercase_characters: Option<EnterpriseConfigurationItemInteger>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub password_min_numeric_characters: Option<EnterpriseConfigurationItemInteger>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub password_min_special_characters: Option<EnterpriseConfigurationItemInteger>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub password_reset_frequency: Option<EnterpriseConfigurationItemString>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub previous_password_reuse_limit: Option<EnterpriseConfigurationItemString>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub session_duration: Option<EnterpriseConfigurationItemString>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub external_collab_multi_factor_auth_settings:
Option<EnterpriseConfigurationSecurityExternalCollabMultiFactorAuthSettings>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub keysafe: Option<EnterpriseConfigurationSecurityKeysafe>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_custom_session_duration_enabled: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub custom_session_duration_value: Option<EnterpriseConfigurationItemString>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub custom_session_duration_groups:
Option<EnterpriseConfigurationSecurityCustomSessionDurationGroups>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub multi_factor_auth_type: Option<EnterpriseConfigurationItemString>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub enforced_mfa_frequency: Option<EnterpriseConfigurationSecurityEnforcedMfaFrequency>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct EnterpriseConfigurationShield {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub shield_rules: Option<Vec<ShieldRuleItem>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct EnterpriseConfigurationUserSettings {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub enterprise_feature_settings: Option<Vec<EnterpriseFeatureSettingsItem>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub user_invites_expiration_time_frame: Option<EnterpriseConfigurationItemString>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_username_change_restricted: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_box_sync_restricted_for_new_users: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_view_all_users_enabled_for_new_users: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_device_limit_exemption_enabled_for_new_users: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_external_collaboration_restricted_for_new_users:
Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_unlimited_storage_enabled_for_new_users: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub new_user_default_storage_limit: Option<EnterpriseConfigurationItemInteger>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub new_user_default_timezone: Option<EnterpriseConfigurationItemString>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub new_user_default_language: Option<EnterpriseConfigurationItemString>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_enterprise_sso_required: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_enterprise_sso_in_testing: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_sso_auto_add_groups_enabled: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_sso_auto_add_user_to_groups_enabled: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_sso_auto_remove_user_from_groups_enabled: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub user_tracking_codes: Option<EnterpriseConfigurationUserSettingsUserTrackingCodes>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub number_of_user_tracking_codes_remaining: Option<EnterpriseConfigurationItemInteger>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_instant_login_restricted: Option<EnterpriseConfigurationItemBoolean>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct EnterpriseFeatureSetting {
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub id: Option<Option<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub feature: Option<EnterpriseFeatureSettingFeature>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub state: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub can_configure: Option<Option<bool>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub is_configured: Option<Option<bool>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub allowlist: Option<Option<Vec<UserOrGroupReference>>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub denylist: Option<Option<Vec<UserOrGroupReference>>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct EnterpriseFeatureSettingsItem {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_used: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub value: Option<EnterpriseFeatureSetting>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct EnterpriseReference {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<EnterpriseReferenceType>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct ExternalCollabSecuritySettings {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub denylist_domains: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub denylist_emails: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub allowlist_domains: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub allowlist_emails: Option<Vec<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub state: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub scheduled_status: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub scheduled_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub factor_type_settings: Option<Option<String>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct ExternalUserDeletionResult {
pub user_id: String,
pub status: i64,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub detail: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct ExternalUsersSubmitDeleteJobRequest {
pub external_users: Vec<UserReference>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct ExternalUsersSubmitDeleteJobResponse {
pub entries: Vec<ExternalUserDeletionResult>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct FileReference {
pub r#type: FileReferenceType,
pub id: String,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct Hub {
pub id: String,
pub r#type: HubType,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub title: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_by: Option<UserMini>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub updated_by: Option<UserMini>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub view_count: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_ai_enabled: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_collaboration_restricted_to_enterprise: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub can_non_owners_invite: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub can_shared_link_be_created: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub can_public_shared_link_be_created: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub copy_hub_access: Option<HubCopyHubAccess>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct HubBase {
pub id: String,
pub r#type: HubType,
}
#[derive(Clone, Debug, PartialEq)]
pub enum HubAccessGrantee {
User(HubCollaborationUser),
Group(GroupMini),
Unknown(serde_json::Value),
}
impl Default for HubAccessGrantee {
fn default() -> Self {
Self::Unknown(Default::default())
}
}
impl serde::Serialize for HubAccessGrantee {
fn serialize<S: serde::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
match self {
Self::User(inner) => inner.serialize(serializer),
Self::Group(inner) => inner.serialize(serializer),
Self::Unknown(inner) => inner.serialize(serializer),
}
}
}
impl<'de> serde::Deserialize<'de> for HubAccessGrantee {
fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
let value = serde_json::Value::deserialize(deserializer)?;
let tag = value
.get("type")
.and_then(serde_json::Value::as_str)
.map(str::to_owned);
match tag.as_deref() {
Some("user") => Ok(Self::User(
serde_json::from_value(value).map_err(serde::de::Error::custom)?,
)),
Some("group") => Ok(Self::Group(
serde_json::from_value(value).map_err(serde::de::Error::custom)?,
)),
_ => Ok(Self::Unknown(value)),
}
}
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct HubCalloutBoxTextBlock {
pub id: String,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub parent_id: Option<Option<String>>,
pub r#type: HubCalloutBoxTextBlockType,
pub fragment: String,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct HubCollaboration {
pub id: String,
pub r#type: HubCollaborationType,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub hub: Option<HubBase>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub accessible_by: Option<HubAccessGrantee>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub role: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status: Option<HubCollaborationStatus>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub acceptance_requirements_status: Option<HubCollaborationAcceptanceRequirementsStatus>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct HubCollaborationCreateRequest {
pub hub: HubCollaborationCreateRequestHub,
pub accessible_by: HubCollaborationCreateRequestAccessibleBy,
pub role: String,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct HubCollaborations {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub entries: Option<Vec<HubCollaboration>>,
#[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>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct HubCollaborationUpdateRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub role: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct HubCollaborationUser {
pub id: String,
pub r#type: HubCollaborationUserType,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub login: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct HubCopyRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub title: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub include_items: Option<bool>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct HubCreateRequest {
pub title: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct HubDividerBlock {
pub id: String,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub parent_id: Option<Option<String>>,
pub r#type: HubDividerBlockType,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct HubDocumentBlock {
pub id: String,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub parent_id: Option<Option<String>>,
}
#[derive(Clone, Debug, PartialEq)]
pub enum HubDocumentBlockEntry {
Paragraph(HubParagraphTextBlock),
SectionTitle(HubSectionTitleTextBlock),
CalloutBox(HubCalloutBoxTextBlock),
ItemList(HubItemListBlock),
Divider(HubDividerBlock),
Unknown(serde_json::Value),
}
impl Default for HubDocumentBlockEntry {
fn default() -> Self {
Self::Unknown(Default::default())
}
}
impl serde::Serialize for HubDocumentBlockEntry {
fn serialize<S: serde::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
match self {
Self::Paragraph(inner) => inner.serialize(serializer),
Self::SectionTitle(inner) => inner.serialize(serializer),
Self::CalloutBox(inner) => inner.serialize(serializer),
Self::ItemList(inner) => inner.serialize(serializer),
Self::Divider(inner) => inner.serialize(serializer),
Self::Unknown(inner) => inner.serialize(serializer),
}
}
}
impl<'de> serde::Deserialize<'de> for HubDocumentBlockEntry {
fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
let value = serde_json::Value::deserialize(deserializer)?;
let tag = value
.get("type")
.and_then(serde_json::Value::as_str)
.map(str::to_owned);
match tag.as_deref() {
Some("paragraph") => Ok(Self::Paragraph(
serde_json::from_value(value).map_err(serde::de::Error::custom)?,
)),
Some("section_title") => Ok(Self::SectionTitle(
serde_json::from_value(value).map_err(serde::de::Error::custom)?,
)),
Some("callout_box") => Ok(Self::CalloutBox(
serde_json::from_value(value).map_err(serde::de::Error::custom)?,
)),
Some("item_list") => Ok(Self::ItemList(
serde_json::from_value(value).map_err(serde::de::Error::custom)?,
)),
Some("divider") => Ok(Self::Divider(
serde_json::from_value(value).map_err(serde::de::Error::custom)?,
)),
_ => Ok(Self::Unknown(value)),
}
}
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct HubDocumentBlocks {
pub entries: Vec<HubDocumentBlockEntry>,
pub r#type: HubDocumentBlocksType,
#[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>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct HubDocumentPage {
pub id: String,
pub r#type: String,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub parent_id: Option<Option<String>>,
pub title_fragment: String,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct HubDocumentPages {
pub entries: Vec<HubDocumentPage>,
pub r#type: HubDocumentPagesType,
#[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>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct HubItem {
pub id: String,
pub r#type: HubItemType,
pub name: String,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct HubItemListBlock {
pub id: String,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub parent_id: Option<Option<String>>,
pub r#type: HubItemListBlockType,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct HubItemOperation {
pub action: HubItemOperationAction,
pub item: HubItemReference,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub parent_id: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct HubItemOperationResult {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub action: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub item: Option<HubItemReference>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub parent_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub error: Option<String>,
}
#[derive(Clone, Debug, PartialEq)]
pub enum HubItemReference {
File(FileReference),
Folder(FolderReference),
WebLink(WeblinkReference),
Unknown(serde_json::Value),
}
impl Default for HubItemReference {
fn default() -> Self {
Self::Unknown(Default::default())
}
}
impl serde::Serialize for HubItemReference {
fn serialize<S: serde::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
match self {
Self::File(inner) => inner.serialize(serializer),
Self::Folder(inner) => inner.serialize(serializer),
Self::WebLink(inner) => inner.serialize(serializer),
Self::Unknown(inner) => inner.serialize(serializer),
}
}
}
impl<'de> serde::Deserialize<'de> for HubItemReference {
fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
let value = serde_json::Value::deserialize(deserializer)?;
let tag = value
.get("type")
.and_then(serde_json::Value::as_str)
.map(str::to_owned);
match tag.as_deref() {
Some("file") => Ok(Self::File(
serde_json::from_value(value).map_err(serde::de::Error::custom)?,
)),
Some("folder") => Ok(Self::Folder(
serde_json::from_value(value).map_err(serde::de::Error::custom)?,
)),
Some("web_link") => Ok(Self::WebLink(
serde_json::from_value(value).map_err(serde::de::Error::custom)?,
)),
_ => Ok(Self::Unknown(value)),
}
}
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct HubItems {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub entries: Option<Vec<HubItem>>,
#[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>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct HubItemsManageRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub operations: Option<Vec<HubItemOperation>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct HubItemsManageResponse {
pub operations: Vec<HubItemOperationResult>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct HubParagraphTextBlock {
pub id: String,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub parent_id: Option<Option<String>>,
pub r#type: HubParagraphTextBlockType,
pub fragment: String,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct Hubs {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub entries: Option<Vec<Hub>>,
#[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>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct HubSectionTitleTextBlock {
pub id: String,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub parent_id: Option<Option<String>>,
pub r#type: HubSectionTitleTextBlockType,
pub fragment: String,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct HubUpdateRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub title: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_ai_enabled: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_collaboration_restricted_to_enterprise: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub can_non_owners_invite: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub can_shared_link_be_created: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub can_public_shared_link_be_created: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub copy_hub_access: Option<HubCopyHubAccess>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct KeysafeSettings {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub keysafe_enabled: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub cloud_provider: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub key_id: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub account_id: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub location_id: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub project_id: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub keyring_id: Option<Option<String>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct ListUser {
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub id: Option<Option<i64>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub name: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub email: Option<Option<String>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct ShieldList {
pub id: String,
pub r#type: String,
pub name: String,
pub enterprise: EnterpriseReference,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
pub created_at: chrono::DateTime<chrono::Utc>,
pub updated_at: chrono::DateTime<chrono::Utc>,
pub content: ShieldListContent,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct ShieldListMini {
pub id: String,
pub r#type: ShieldListMiniType,
pub name: String,
pub content: ShieldListMiniContent,
}
#[derive(Clone, Debug, PartialEq)]
pub enum ShieldListContent {
Country(ShieldListContentCountry),
Domain(ShieldListContentDomain),
Email(ShieldListContentEmail),
Ip(ShieldListContentIp),
Integration(ShieldListContentIntegration),
Unknown(serde_json::Value),
}
impl Default for ShieldListContent {
fn default() -> Self {
Self::Unknown(Default::default())
}
}
impl serde::Serialize for ShieldListContent {
fn serialize<S: serde::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
match self {
Self::Country(inner) => inner.serialize(serializer),
Self::Domain(inner) => inner.serialize(serializer),
Self::Email(inner) => inner.serialize(serializer),
Self::Ip(inner) => inner.serialize(serializer),
Self::Integration(inner) => inner.serialize(serializer),
Self::Unknown(inner) => inner.serialize(serializer),
}
}
}
impl<'de> serde::Deserialize<'de> for ShieldListContent {
fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
let value = serde_json::Value::deserialize(deserializer)?;
let tag = value
.get("type")
.and_then(serde_json::Value::as_str)
.map(str::to_owned);
match tag.as_deref() {
Some("country") => Ok(Self::Country(
serde_json::from_value(value).map_err(serde::de::Error::custom)?,
)),
Some("domain") => Ok(Self::Domain(
serde_json::from_value(value).map_err(serde::de::Error::custom)?,
)),
Some("email") => Ok(Self::Email(
serde_json::from_value(value).map_err(serde::de::Error::custom)?,
)),
Some("ip") => Ok(Self::Ip(
serde_json::from_value(value).map_err(serde::de::Error::custom)?,
)),
Some("integration") => Ok(Self::Integration(
serde_json::from_value(value).map_err(serde::de::Error::custom)?,
)),
_ => Ok(Self::Unknown(value)),
}
}
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct ShieldListContentCountry {
pub r#type: ShieldListContentCountryType,
pub country_codes: Vec<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct ShieldListContentDomain {
pub r#type: ShieldListContentDomainType,
pub domains: Vec<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct ShieldListContentEmail {
pub r#type: ShieldListContentEmailType,
pub email_addresses: Vec<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct ShieldListContentIntegration {
pub r#type: ShieldListContentIntegrationType,
pub integrations: Vec<ShieldListContentIntegrationIntegrations>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct ShieldListContentIp {
pub r#type: ShieldListContentIpType,
pub ip_addresses: Vec<String>,
}
#[derive(Clone, Debug, PartialEq)]
pub enum ShieldListContentRequest {
Country(ShieldListContentCountry),
Domain(ShieldListContentDomain),
Email(ShieldListContentEmail),
Ip(ShieldListContentIp),
Unknown(serde_json::Value),
}
impl Default for ShieldListContentRequest {
fn default() -> Self {
Self::Unknown(Default::default())
}
}
impl serde::Serialize for ShieldListContentRequest {
fn serialize<S: serde::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
match self {
Self::Country(inner) => inner.serialize(serializer),
Self::Domain(inner) => inner.serialize(serializer),
Self::Email(inner) => inner.serialize(serializer),
Self::Ip(inner) => inner.serialize(serializer),
Self::Unknown(inner) => inner.serialize(serializer),
}
}
}
impl<'de> serde::Deserialize<'de> for ShieldListContentRequest {
fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
let value = serde_json::Value::deserialize(deserializer)?;
let tag = value
.get("type")
.and_then(serde_json::Value::as_str)
.map(str::to_owned);
match tag.as_deref() {
Some("country") => Ok(Self::Country(
serde_json::from_value(value).map_err(serde::de::Error::custom)?,
)),
Some("domain") => Ok(Self::Domain(
serde_json::from_value(value).map_err(serde::de::Error::custom)?,
)),
Some("email") => Ok(Self::Email(
serde_json::from_value(value).map_err(serde::de::Error::custom)?,
)),
Some("ip") => Ok(Self::Ip(
serde_json::from_value(value).map_err(serde::de::Error::custom)?,
)),
_ => Ok(Self::Unknown(value)),
}
}
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct ShieldLists {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub entries: Option<Vec<ShieldListMini>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct ShieldListsCreate {
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
pub content: ShieldListContentRequest,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct ShieldListsUpdate {
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
pub content: ShieldListContentRequest,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct ShieldRuleItem {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<ShieldRuleItemType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub rule_category: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub priority: Option<ShieldRuleItemPriority>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub modified_at: Option<chrono::DateTime<chrono::Utc>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct UserOrGroupReference {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<UserOrGroupReferenceType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct UserReference {
pub r#type: HubCollaborationUserType,
pub id: String,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct UserTrackingCode {
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub id: Option<Option<i64>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub name: Option<Option<String>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct WeblinkReference {
pub r#type: WeblinkReferenceType,
pub id: String,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct ArchiveType(pub String);
impl ArchiveType {
pub const ARCHIVE: &'static str = "archive";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct ArchiveOwnedBy {
pub id: String,
pub r#type: String,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct DocGenBatchBaseType(pub String);
impl DocGenBatchBaseType {
pub const DOCGEN_BATCH: &'static str = "docgen_batch";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct DestinationFolderType(pub String);
impl DestinationFolderType {
pub const FOLDER: &'static str = "folder";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct DocGenBatchCreateRequestDestinationFolder {
pub r#type: DestinationFolderType,
pub id: String,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct DocGenJobType(pub String);
impl DocGenJobType {
pub const DOCGEN_JOB: &'static str = "docgen_job";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct DocGenJobOutputFile(pub serde_json::Value);
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct DocGenJobOutputFileVersion(pub serde_json::Value);
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct DocGenJobStatus(pub String);
impl DocGenJobStatus {
pub const SUBMITTED: &'static str = "submitted";
pub const COMPLETED: &'static str = "completed";
pub const FAILED: &'static str = "failed";
pub const COMPLETED_WITH_ERROR: &'static str = "completed_with_error";
pub const PENDING: &'static str = "pending";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct DocGenJobFailures {
pub errors: Vec<String>,
pub warnings: Vec<String>,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct DocGenTagTagType(pub String);
impl DocGenTagTagType {
pub const TEXT: &'static str = "text";
pub const ARITHMETIC: &'static str = "arithmetic";
pub const CONDITIONAL: &'static str = "conditional";
pub const FOR_LOOP: &'static str = "for-loop";
pub const TABLE_LOOP: &'static str = "table-loop";
pub const IMAGE: &'static str = "image";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct EnterpriseConfigurationType(pub String);
impl EnterpriseConfigurationType {
pub const ENTERPRISE_CONFIGURATION: &'static str = "enterprise_configuration";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct EnterpriseConfigurationSecurity2(pub serde_json::Value);
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct EnterpriseConfigurationContentAndSharing2(pub serde_json::Value);
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct EnterpriseConfigurationUserSettings2(pub serde_json::Value);
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct EnterpriseConfigurationShield2(pub serde_json::Value);
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct EnterpriseConfigurationContentAndSharingSharedLinkDefaultPermissionsSelected {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_used: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub value: Option<SharedLinkPermissions>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct EnterpriseConfigurationContentAndSharingCollaborationPermissions {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_used: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub value: Option<CollaborationPermissions>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct EnterpriseConfigurationContentAndSharingCollaborationRestrictions {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_used: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub value: Option<Vec<String>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct EnterpriseConfigurationContentAndSharingExternalCollaborationStatus {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_used: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub value: Option<Option<String>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct EnterpriseConfigurationContentAndSharingExternalCollaborationAllowlistUsers {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_used: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub value: Option<Vec<ListUser>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct EnterpriseConfigurationSecurityLastPasswordResetAt {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_used: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub value: Option<Option<chrono::DateTime<chrono::Utc>>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct ExternalCollabMultiFactorAuthSettingsValue(pub serde_json::Value);
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct EnterpriseConfigurationSecurityExternalCollabMultiFactorAuthSettings {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_used: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub value: Option<ExternalCollabMultiFactorAuthSettingsValue>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct KeysafeValue(pub serde_json::Value);
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct EnterpriseConfigurationSecurityKeysafe {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_used: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub value: Option<KeysafeValue>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct EnterpriseConfigurationSecurityCustomSessionDurationGroups {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_used: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub value: Option<Vec<CustomSessionDurationGroupItem>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct EnforcedMfaFrequencyValue {
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub days: Option<Option<i64>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub hours: Option<Option<i64>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct EnterpriseConfigurationSecurityEnforcedMfaFrequency {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_used: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub value: Option<EnforcedMfaFrequencyValue>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct EnterpriseConfigurationUserSettingsUserTrackingCodes {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_used: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub value: Option<Vec<UserTrackingCode>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct EnterpriseFeatureSettingFeature {
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub id: Option<Option<String>>,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct EnterpriseReferenceType(pub String);
impl EnterpriseReferenceType {
pub const ENTERPRISE: &'static str = "enterprise";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct FileReferenceType(pub String);
impl FileReferenceType {
pub const FILE: &'static str = "file";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct FileVersionBaseType(pub String);
impl FileVersionBaseType {
pub const FILE_VERSION: &'static str = "file_version";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct GroupBaseType(pub String);
impl GroupBaseType {
pub const GROUP: &'static str = "group";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct GroupMiniGroupType(pub String);
impl GroupMiniGroupType {
pub const MANAGED_GROUP: &'static str = "managed_group";
pub const ALL_USERS_GROUP: &'static str = "all_users_group";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct HubType(pub String);
impl HubType {
pub const HUBS: &'static str = "hubs";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct HubCopyHubAccess(pub String);
impl HubCopyHubAccess {
pub const ALL: &'static str = "all";
pub const COMPANY: &'static str = "company";
pub const NONE: &'static str = "none";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct HubCalloutBoxTextBlockType(pub String);
impl HubCalloutBoxTextBlockType {
pub const CALLOUT_BOX: &'static str = "callout_box";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct HubCollaborationType(pub String);
impl HubCollaborationType {
pub const HUB_COLLABORATION: &'static str = "hub_collaboration";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct HubCollaborationStatus(pub String);
impl HubCollaborationStatus {
pub const ACCEPTED: &'static str = "accepted";
pub const PENDING: &'static str = "pending";
pub const REJECTED: &'static str = "rejected";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct HubCollaborationAcceptanceRequirementsStatus {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub terms_of_service_requirement: Option<AcceptanceRequirementsStatusTermsOfServiceRequirement>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub strong_password_requirement: Option<AcceptanceRequirementsStatusStrongPasswordRequirement>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub two_factor_authentication_requirement:
Option<AcceptanceRequirementsStatusTwoFactorAuthenticationRequirement>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct HubCollaborationCreateRequestHub {
pub r#type: HubType,
pub id: String,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct HubCollaborationCreateRequestAccessibleBy {
pub r#type: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub login: Option<String>,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct HubCollaborationUserType(pub String);
impl HubCollaborationUserType {
pub const USER: &'static str = "user";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct HubDividerBlockType(pub String);
impl HubDividerBlockType {
pub const DIVIDER: &'static str = "divider";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct HubDocumentBlocksType(pub String);
impl HubDocumentBlocksType {
pub const DOCUMENT_BLOCKS: &'static str = "document_blocks";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct HubDocumentPagesType(pub String);
impl HubDocumentPagesType {
pub const DOCUMENT_PAGES: &'static str = "document_pages";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct HubItemType(pub String);
impl HubItemType {
pub const FILE: &'static str = "file";
pub const FOLDER: &'static str = "folder";
pub const WEB_LINK: &'static str = "web_link";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct HubItemListBlockType(pub String);
impl HubItemListBlockType {
pub const ITEM_LIST: &'static str = "item_list";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct HubItemOperationAction(pub String);
impl HubItemOperationAction {
pub const ADD: &'static str = "add";
pub const REMOVE: &'static str = "remove";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct HubParagraphTextBlockType(pub String);
impl HubParagraphTextBlockType {
pub const PARAGRAPH: &'static str = "paragraph";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct HubSectionTitleTextBlockType(pub String);
impl HubSectionTitleTextBlockType {
pub const SECTION_TITLE: &'static str = "section_title";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct ShieldListMiniType(pub String);
impl ShieldListMiniType {
pub const SHIELD_LIST: &'static str = "shield_list";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct ShieldListMiniContent {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<String>,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct ShieldListContentCountryType(pub String);
impl ShieldListContentCountryType {
pub const COUNTRY: &'static str = "country";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct ShieldListContentDomainType(pub String);
impl ShieldListContentDomainType {
pub const DOMAIN: &'static str = "domain";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct ShieldListContentEmailType(pub String);
impl ShieldListContentEmailType {
pub const EMAIL: &'static str = "email";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct ShieldListContentIntegrationType(pub String);
impl ShieldListContentIntegrationType {
pub const INTEGRATION: &'static str = "integration";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct ShieldListContentIntegrationIntegrations {
#[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 ShieldListContentIpType(pub String);
impl ShieldListContentIpType {
pub const IP: &'static str = "ip";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct ShieldRuleItemType(pub String);
impl ShieldRuleItemType {
pub const SHIELD_RULE: &'static str = "shield_rule";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct ShieldRuleItemPriority(pub String);
impl ShieldRuleItemPriority {
pub const INFORMATIONAL: &'static str = "informational";
pub const LOW: &'static str = "low";
pub const MEDIUM: &'static str = "medium";
pub const HIGH: &'static str = "high";
pub const CRITICAL: &'static str = "critical";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct TermsOfServiceBaseType(pub String);
impl TermsOfServiceBaseType {
pub const TERMS_OF_SERVICE: &'static str = "terms_of_service";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct UserOrGroupReferenceType(pub String);
impl UserOrGroupReferenceType {
pub const USER: &'static str = "user";
pub const GROUP: &'static str = "group";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct WeblinkReferenceType(pub String);
impl WeblinkReferenceType {
pub const WEB_LINK: &'static str = "web_link";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct ArchiveCreateRequest {
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub storage_policy_id: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct ArchiveUpdateRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct AutomateWorkflowAction {
pub id: String,
pub r#type: AutomateWorkflowActionType,
pub action_type: AutomateWorkflowActionActionType,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_by: Option<UserMini>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub updated_by: Option<UserMini>,
pub workflow: AutomateWorkflowReference,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct AutomateWorkflowReference {
pub id: String,
pub r#type: AutomateWorkflowReferenceType,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct AutomateWorkflows {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub entries: Option<Vec<AutomateWorkflowAction>>,
#[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>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct AutomateWorkflowStartRequest {
pub workflow_action_id: String,
pub file_ids: Vec<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct NotesConvertRequestBody {
pub content: String,
pub content_format: NotesConvertRequestBodyContentFormat,
pub parent: FolderReference,
pub name: String,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct NotesConvertResponse {
pub r#type: NotesConvertResponseType,
pub id: String,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct AutomateWorkflowActionType(pub String);
impl AutomateWorkflowActionType {
pub const WORKFLOW_ACTION: &'static str = "workflow_action";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct AutomateWorkflowActionActionType(pub String);
impl AutomateWorkflowActionActionType {
pub const RUN_WORKFLOW: &'static str = "run_workflow";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct AutomateWorkflowReferenceType(pub String);
impl AutomateWorkflowReferenceType {
pub const WORKFLOW: &'static str = "workflow";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct FolderReferenceType(pub String);
impl FolderReferenceType {
pub const FOLDER: &'static str = "folder";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct NotesConvertRequestBodyContentFormat(pub String);
impl NotesConvertRequestBodyContentFormat {
pub const MARKDOWN: &'static str = "markdown";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct NotesConvertResponseType(pub String);
impl NotesConvertResponseType {
pub const FILE: &'static str = "file";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct UserBaseType(pub String);
impl UserBaseType {
pub const USER: &'static str = "user";
}