use crate::common;
use crate::snapshot;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct SnapshotInfo {
#[serde(rename = "state", default, skip_serializing_if = "Option::is_none")]
pub state: Option<String>,
#[serde(rename = "data_streams")]
pub data_streams: Vec<String>,
#[serde(rename = "failures", default, skip_serializing_if = "Option::is_none")]
pub failures: Option<Vec<snapshot::SnapshotShardFailure>>,
#[serde(rename = "include_global_state", default, skip_serializing_if = "Option::is_none")]
pub include_global_state: Option<bool>,
#[serde(rename = "uuid")]
pub uuid: String,
#[serde(rename = "indices", default, skip_serializing_if = "Option::is_none")]
pub indices: Option<Vec<String>>,
#[serde(rename = "start_time_in_millis", default, skip_serializing_if = "Option::is_none")]
pub start_time_in_millis: Option<String>,
#[serde(rename = "remote_store_index_shallow_copy", default, skip_serializing_if = "Option::is_none")]
pub remote_store_index_shallow_copy: Option<bool>, #[serde(rename = "end_time", default, skip_serializing_if = "Option::is_none")]
pub end_time: Option<common::DateTime>,
#[serde(rename = "shards", default, skip_serializing_if = "Option::is_none")]
pub shards: Option<common::ShardStatistics>,
#[serde(rename = "end_time_in_millis", default, skip_serializing_if = "Option::is_none")]
pub end_time_in_millis: Option<String>,
#[serde(rename = "duration_in_millis", default, skip_serializing_if = "Option::is_none")]
pub duration_in_millis: Option<String>,
#[serde(rename = "reason", default, skip_serializing_if = "Option::is_none")]
pub reason: Option<String>,
#[serde(rename = "version_id", default, skip_serializing_if = "Option::is_none")]
pub version_id: Option<u32>,
#[serde(rename = "snapshot")]
pub snapshot: String, #[serde(rename = "start_time", default, skip_serializing_if = "Option::is_none")]
pub start_time: Option<common::DateTime>,
#[serde(rename = "metadata", default, skip_serializing_if = "Option::is_none")]
pub metadata: Option<common::Metadata>,
#[serde(rename = "pinned_timestamp", default, skip_serializing_if = "Option::is_none")]
pub pinned_timestamp: Option<String>, #[serde(rename = "duration", default, skip_serializing_if = "Option::is_none")]
pub duration: Option<String>,
#[serde(rename = "version", default, skip_serializing_if = "Option::is_none")]
pub version: Option<String>,
}
impl SnapshotInfo {
pub fn new(data_streams: Vec<String>, uuid: String, snapshot: String) -> SnapshotInfo {
SnapshotInfo {
state: None,
data_streams,
failures: None,
include_global_state: None,
uuid,
indices: None,
start_time_in_millis: None,
remote_store_index_shallow_copy: None,
end_time: None,
shards: None,
end_time_in_millis: None,
duration_in_millis: None,
reason: None,
version_id: None,
snapshot,
start_time: None,
metadata: None,
pinned_timestamp: None,
duration: None,
version: None,
}
}
}