//! !!! DO NOT EDIT THIS FILE !!!
//!
//! This file is auto-generated by './generate-schema.sh' in the repository.
//! Please refer to the script code to learn how to update the source data.

#![allow(clippy::enum_variant_names)]
#![allow(clippy::missing_docs_in_private_items)]
#![allow(missing_docs)]
#![allow(non_snake_case)]

// Example code that deserializes and serializes the model.
// extern crate serde;
// #[macro_use]
// extern crate serde_derive;
// extern crate serde_json;
//
// use generated_module::FilesGetUploadUrlExternalResponse;
//
// fn main() {
//     let json = r#"{"answer": 42}"#;
//     let model: FilesGetUploadUrlExternalResponse = serde_json::from_str(&json).unwrap();
// }

use serde::{Deserialize, Serialize};

#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct FilesGetUploadUrlExternalResponse {
    #[serde(skip_serializing_if = "Option::is_none")]
    pub error: Option<String>,

    #[serde(skip_serializing_if = "Option::is_none")]
    pub file_id: Option<String>,

    #[serde(skip_serializing_if = "Option::is_none")]
    pub needed: Option<String>,

    #[serde(skip_serializing_if = "Option::is_none")]
    pub ok: Option<bool>,

    #[serde(skip_serializing_if = "Option::is_none")]
    pub provided: Option<String>,

    #[serde(skip_serializing_if = "Option::is_none")]
    pub response_metadata: Option<ResponseMetadata>,

    #[serde(skip_serializing_if = "Option::is_none")]
    pub upload_url: Option<String>,
}

#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ResponseMetadata {
    #[serde(skip_serializing_if = "Option::is_none")]
    pub messages: Option<Vec<String>>,
}
