/*
 * Gitea API.
 *
 * This documentation describes the Gitea API.
 *
 * The version of the OpenAPI document: 1.17.3
 * 
 * Generated by: https://openapi-generator.tech
 */

/// NodeInfo : NodeInfo contains standardized way of exposing metadata about a server running one of the distributed social networks



#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
pub struct NodeInfo {
    #[serde(rename = "metadata", skip_serializing_if = "Option::is_none")]
    pub metadata: Option<serde_json::Value>,
    #[serde(rename = "openRegistrations", skip_serializing_if = "Option::is_none")]
    pub open_registrations: Option<bool>,
    #[serde(rename = "protocols", skip_serializing_if = "Option::is_none")]
    pub protocols: Option<Vec<String>>,
    #[serde(rename = "services", skip_serializing_if = "Option::is_none")]
    pub services: Option<Box<crate::models::NodeInfoServices>>,
    #[serde(rename = "software", skip_serializing_if = "Option::is_none")]
    pub software: Option<Box<crate::models::NodeInfoSoftware>>,
    #[serde(rename = "usage", skip_serializing_if = "Option::is_none")]
    pub usage: Option<Box<crate::models::NodeInfoUsage>>,
    #[serde(rename = "version", skip_serializing_if = "Option::is_none")]
    pub version: Option<String>,
}

impl NodeInfo {
    /// NodeInfo contains standardized way of exposing metadata about a server running one of the distributed social networks
    pub fn new() -> NodeInfo {
        NodeInfo {
            metadata: None,
            open_registrations: None,
            protocols: None,
            services: None,
            software: None,
            usage: None,
            version: None,
        }
    }
}


