readarr 0.1.1

Readarr API docs
Documentation
/*
 * Readarr
 *
 * Readarr API docs
 *
 * The version of the OpenAPI document: v0.4.10.2734
 * 
 * Generated by: https://openapi-generator.tech
 */

use crate::models;
use serde::{Deserialize, Serialize};

#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct AuthorResource {
    #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
    pub id: Option<i32>,
    #[serde(rename = "authorMetadataId", skip_serializing_if = "Option::is_none")]
    pub author_metadata_id: Option<i32>,
    #[serde(rename = "status", skip_serializing_if = "Option::is_none")]
    pub status: Option<models::AuthorStatusType>,
    #[serde(rename = "ended", skip_serializing_if = "Option::is_none")]
    pub ended: Option<bool>,
    #[serde(rename = "authorName", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
    pub author_name: Option<Option<String>>,
    #[serde(rename = "authorNameLastFirst", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
    pub author_name_last_first: Option<Option<String>>,
    #[serde(rename = "foreignAuthorId", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
    pub foreign_author_id: Option<Option<String>>,
    #[serde(rename = "titleSlug", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
    pub title_slug: Option<Option<String>>,
    #[serde(rename = "overview", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
    pub overview: Option<Option<String>>,
    #[serde(rename = "disambiguation", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
    pub disambiguation: Option<Option<String>>,
    #[serde(rename = "links", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
    pub links: Option<Option<Vec<models::Links>>>,
    #[serde(rename = "nextBook", skip_serializing_if = "Option::is_none")]
    pub next_book: Option<Box<models::Book>>,
    #[serde(rename = "lastBook", skip_serializing_if = "Option::is_none")]
    pub last_book: Option<Box<models::Book>>,
    #[serde(rename = "images", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
    pub images: Option<Option<Vec<models::MediaCover>>>,
    #[serde(rename = "remotePoster", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
    pub remote_poster: Option<Option<String>>,
    #[serde(rename = "path", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
    pub path: Option<Option<String>>,
    #[serde(rename = "qualityProfileId", skip_serializing_if = "Option::is_none")]
    pub quality_profile_id: Option<i32>,
    #[serde(rename = "metadataProfileId", skip_serializing_if = "Option::is_none")]
    pub metadata_profile_id: Option<i32>,
    #[serde(rename = "monitored", skip_serializing_if = "Option::is_none")]
    pub monitored: Option<bool>,
    #[serde(rename = "monitorNewItems", skip_serializing_if = "Option::is_none")]
    pub monitor_new_items: Option<models::NewItemMonitorTypes>,
    #[serde(rename = "rootFolderPath", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
    pub root_folder_path: Option<Option<String>>,
    #[serde(rename = "genres", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
    pub genres: Option<Option<Vec<String>>>,
    #[serde(rename = "cleanName", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
    pub clean_name: Option<Option<String>>,
    #[serde(rename = "sortName", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
    pub sort_name: Option<Option<String>>,
    #[serde(rename = "sortNameLastFirst", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
    pub sort_name_last_first: Option<Option<String>>,
    #[serde(rename = "tags", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
    pub tags: Option<Option<Vec<i32>>>,
    #[serde(rename = "added", skip_serializing_if = "Option::is_none")]
    pub added: Option<String>,
    #[serde(rename = "addOptions", skip_serializing_if = "Option::is_none")]
    pub add_options: Option<Box<models::AddAuthorOptions>>,
    #[serde(rename = "ratings", skip_serializing_if = "Option::is_none")]
    pub ratings: Option<Box<models::Ratings>>,
    #[serde(rename = "statistics", skip_serializing_if = "Option::is_none")]
    pub statistics: Option<Box<models::AuthorStatisticsResource>>,
}

impl AuthorResource {
    pub fn new() -> AuthorResource {
        AuthorResource {
            id: None,
            author_metadata_id: None,
            status: None,
            ended: None,
            author_name: None,
            author_name_last_first: None,
            foreign_author_id: None,
            title_slug: None,
            overview: None,
            disambiguation: None,
            links: None,
            next_book: None,
            last_book: None,
            images: None,
            remote_poster: None,
            path: None,
            quality_profile_id: None,
            metadata_profile_id: None,
            monitored: None,
            monitor_new_items: None,
            root_folder_path: None,
            genres: None,
            clean_name: None,
            sort_name: None,
            sort_name_last_first: None,
            tags: None,
            added: None,
            add_options: None,
            ratings: None,
            statistics: None,
        }
    }
}