opensearch_client/common/
node_attributes.rs1use crate::common;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct NodeAttributes {
16 #[serde(rename = "id", default, skip_serializing_if = "Option::is_none")]
17 pub id: Option<String>,
18 #[serde(rename = "ephemeral_id")]
19 pub ephemeral_id: String,
20 #[serde(rename = "roles", default, skip_serializing_if = "Option::is_none")]
22 pub roles: Option<Vec<common::NodeRole>>,
23 #[serde(rename = "transport_address")]
24 pub transport_address: String,
25 #[serde(rename = "attributes")]
27 pub attributes: serde_json::Value,
28 #[serde(
29 rename = "external_id",
30 default,
31 skip_serializing_if = "Option::is_none"
32 )]
33 pub external_id: Option<String>,
34 #[serde(rename = "name")]
35 pub name: String,
36}
37
38impl NodeAttributes {
39 pub fn new(
40 ephemeral_id: String,
41 transport_address: String,
42 attributes: serde_json::Value,
43 name: String,
44 ) -> NodeAttributes {
45 NodeAttributes {
46 id: None,
47 ephemeral_id,
48 roles: None,
49 transport_address,
50 attributes,
51 external_id: None,
52 name,
53 }
54 }
55}