use crate::common;
use crate::core;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct UpdateAction {
#[serde(rename = "upsert", default, skip_serializing_if = "Option::is_none")]
pub upsert: Option<serde_json::Value>,
#[serde(rename = "_source", default, skip_serializing_if = "Option::is_none")]
pub source: Option<core::search::SourceConfig>,
#[serde(rename = "doc", default, skip_serializing_if = "Option::is_none")]
pub doc: Option<serde_json::Value>,
#[serde(
rename = "detect_noop",
default,
skip_serializing_if = "Option::is_none"
)]
pub detect_noop: Option<bool>,
#[serde(
rename = "doc_as_upsert",
default,
skip_serializing_if = "Option::is_none"
)]
pub doc_as_upsert: Option<bool>,
#[serde(
rename = "scripted_upsert",
default,
skip_serializing_if = "Option::is_none"
)]
pub scripted_upsert: Option<bool>,
#[serde(rename = "script", default, skip_serializing_if = "Option::is_none")]
pub script: Option<common::Script>,
}
impl UpdateAction {
pub fn new() -> UpdateAction {
UpdateAction {
upsert: None,
source: None,
doc: None,
detect_noop: None,
doc_as_upsert: None,
scripted_upsert: None,
script: None,
}
}
}