use crate::common;
use crate::indices;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct DataStream {
#[serde(
rename = "ilm_policy",
default,
skip_serializing_if = "Option::is_none"
)]
pub ilm_policy: Option<String>,
#[serde(rename = "indices")]
pub indices: Vec<indices::DataStreamIndex>,
#[serde(rename = "hidden", default, skip_serializing_if = "Option::is_none")]
pub hidden: Option<bool>,
#[serde(
rename = "prefer_ilm",
default,
skip_serializing_if = "Option::is_none"
)]
pub prefer_ilm: Option<bool>,
#[serde(rename = "generation")]
pub generation: u32,
#[serde(rename = "status")]
pub status: common::HealthStatus,
#[serde(rename = "_meta", default, skip_serializing_if = "Option::is_none")]
pub meta: Option<common::Metadata>,
#[serde(rename = "system", default, skip_serializing_if = "Option::is_none")]
pub system: Option<bool>,
#[serde(rename = "template")]
pub template: String,
#[serde(rename = "timestamp_field")]
pub timestamp_field: indices::DataStreamTimestampField,
#[serde(
rename = "replicated",
default,
skip_serializing_if = "Option::is_none"
)]
pub replicated: Option<bool>,
#[serde(rename = "name")]
pub name: String,
#[serde(
rename = "next_generation_managed_by",
default,
skip_serializing_if = "Option::is_none"
)]
pub next_generation_managed_by: Option<String>,
#[serde(
rename = "allow_custom_routing",
default,
skip_serializing_if = "Option::is_none"
)]
pub allow_custom_routing: Option<bool>,
}
impl DataStream {
pub fn new(
indices: Vec<indices::DataStreamIndex>,
generation: u32,
status: common::HealthStatus,
template: String,
timestamp_field: indices::DataStreamTimestampField,
name: String,
) -> DataStream {
DataStream {
ilm_policy: None,
indices,
hidden: None,
prefer_ilm: None,
generation,
status,
meta: None,
system: None,
template,
timestamp_field,
replicated: None,
name,
next_generation_managed_by: None,
allow_custom_routing: None,
}
}
}