use serde::{Deserialize, Serialize};
use crate::enums::DocumentState;
use crate::http::{HttpOptions, HttpResponse};
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct StringList {
#[serde(default)]
pub values: Vec<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct CustomMetadata {
pub key: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub numeric_value: Option<f32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub string_list_value: Option<StringList>,
#[serde(skip_serializing_if = "Option::is_none")]
pub string_value: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct Document {
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub display_name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub state: Option<DocumentState>,
#[serde(skip_serializing_if = "Option::is_none")]
pub size_bytes: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub mime_type: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub create_time: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub update_time: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub custom_metadata: Option<Vec<CustomMetadata>>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GetDocumentConfig {
#[serde(skip_serializing, skip_deserializing)]
pub http_options: Option<HttpOptions>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct DeleteDocumentConfig {
#[serde(skip_serializing, skip_deserializing)]
pub http_options: Option<HttpOptions>,
#[serde(skip_serializing_if = "Option::is_none")]
pub force: Option<bool>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct ListDocumentsConfig {
#[serde(skip_serializing, skip_deserializing)]
pub http_options: Option<HttpOptions>,
#[serde(skip_serializing_if = "Option::is_none")]
pub page_size: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub page_token: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct ListDocumentsResponse {
#[serde(skip_serializing_if = "Option::is_none")]
pub sdk_http_response: Option<HttpResponse>,
#[serde(skip_serializing_if = "Option::is_none")]
pub next_page_token: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub documents: Option<Vec<Document>>,
}