opensearch-client 0.3.1

Strongly typed OpenSearch Client
Documentation
/*
 * opensearch-client
 *
 * Rust Client for OpenSearch
 *
 * The version of the OpenAPI document: 3.1.0
 * Contact: alberto.paro@gmail.com
 * Generated by Paro OpenAPI Generator
 */

use crate::common;
use crate::nodes;
use serde::{Deserialize, Serialize};




#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct NodeInfo {
    #[serde(rename = "transport", default, skip_serializing_if = "Option::is_none")]
    pub transport: Option<nodes::info::NodeInfoTransport>,
    #[serde(rename = "transport_address", default, skip_serializing_if = "Option::is_none")]
    pub transport_address: Option<String>,
    #[serde(rename = "host", default, skip_serializing_if = "Option::is_none")]
    pub host: Option<String>,
    #[serde(rename = "ingest", default, skip_serializing_if = "Option::is_none")]
    pub ingest: Option<nodes::info::NodeInfoIngest>,
    #[serde(rename = "ip", default, skip_serializing_if = "Option::is_none")]
    pub ip: Option<String>,
    #[serde(rename = "aggregations", default, skip_serializing_if = "Option::is_none")]
    pub aggregations: Option<serde_json::Value>,
    #[serde(rename = "jvm", default, skip_serializing_if = "Option::is_none")]
    pub jvm: Option<nodes::info::NodeJvmInfo>,
    #[serde(rename = "modules", default, skip_serializing_if = "Option::is_none")]
    pub modules: Option<Vec<common::PluginStats>>,
    #[serde(rename = "name")]
    pub name: String,
    #[serde(rename = "os", default, skip_serializing_if = "Option::is_none")]
    pub os: Option<nodes::info::NodeOperatingSystemInfo>,
    #[serde(rename = "build_type")]
    pub build_type: String,  /// Short hash of the last git commit in this release.
    #[serde(rename = "build_hash")]
    pub build_hash: String,
    #[serde(rename = "build_flavor", default, skip_serializing_if = "Option::is_none")]
    pub build_flavor: Option<String>,
    #[serde(rename = "network", default, skip_serializing_if = "Option::is_none")]
    pub network: Option<nodes::info::NodeInfoNetwork>,  /// Node roles.
    #[serde(rename = "roles")]
    pub roles: Vec<common::NodeRole>,
    #[serde(rename = "http", default, skip_serializing_if = "Option::is_none")]
    pub http: Option<nodes::info::NodeInfoHttp>,
    #[serde(rename = "plugins", default, skip_serializing_if = "Option::is_none")]
    pub plugins: Option<Vec<common::PluginStats>>,
    #[serde(rename = "settings", default, skip_serializing_if = "Option::is_none")]
    pub settings: Option<nodes::info::NodeInfoSettings>,
    #[serde(rename = "search_pipelines", default, skip_serializing_if = "Option::is_none")]
    pub search_pipelines: Option<nodes::info::NodeInfoSearchPipelines>,
    #[serde(rename = "total_indexing_buffer_in_bytes", default, skip_serializing_if = "Option::is_none")]
    pub total_indexing_buffer_in_bytes: Option<String>,
    #[serde(rename = "version")]
    pub version: String,
    #[serde(rename = "attributes", default, skip_serializing_if = "Option::is_none")]
    pub attributes: Option<serde_json::Value>,
    #[serde(rename = "thread_pool", default, skip_serializing_if = "Option::is_none")]
    pub thread_pool: Option<serde_json::Value>,
    #[serde(rename = "process", default, skip_serializing_if = "Option::is_none")]
    pub process: Option<nodes::info::NodeProcessInfo>,
    #[serde(rename = "total_indexing_buffer", default, skip_serializing_if = "Option::is_none")]
    pub total_indexing_buffer: Option<u32>,
}

impl NodeInfo {
    
    pub fn new(name: String, build_type: String, build_hash: String, roles: Vec<common::NodeRole>, version: String) -> NodeInfo {
        NodeInfo {
            transport: None,
            transport_address: None,
            host: None,
            ingest: None,
            ip: None,
            aggregations: None,
            jvm: None,
            modules: None,
            name,
            os: None,
            build_type,
            build_hash,
            build_flavor: None,
            network: None,
            roles,
            http: None,
            plugins: None,
            settings: None,
            search_pipelines: None,
            total_indexing_buffer_in_bytes: None,
            version,
            attributes: None,
            thread_pool: None,
            process: None,
            total_indexing_buffer: None,
        }
    }
}