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 serde::{Deserialize, Serialize};

#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct ErrorCause {
    #[serde(rename = "caused_by", default, skip_serializing_if = "Option::is_none")]
    pub caused_by: Option<Box<common::ErrorCause>>,
    /// A human-readable explanation of the error, in English.
    #[serde(rename = "reason", default, skip_serializing_if = "Option::is_none")]
    pub reason: Option<String>,
    #[serde(
        rename = "root_cause",
        default,
        skip_serializing_if = "Option::is_none"
    )]
    pub root_cause: Option<Vec<Box<common::ErrorCause>>>,
    #[serde(
        rename = "suppressed",
        default,
        skip_serializing_if = "Option::is_none"
    )]
    pub suppressed: Option<Vec<Box<common::ErrorCause>>>,
    /// The type of error.
    #[serde(rename = "type")]
    pub r#type: String,
    /// The server stack trace, present only if the `error_trace=true` parameter was sent with the request.
    #[serde(
        rename = "stack_trace",
        default,
        skip_serializing_if = "Option::is_none"
    )]
    pub stack_trace: Option<String>,
}

impl ErrorCause {
    pub fn new(r#type: String) -> ErrorCause {
        ErrorCause {
            caused_by: None,
            reason: None,
            root_cause: None,
            suppressed: None,
            r#type,
            stack_trace: None,
        }
    }
}