opensearch_client/cluster/
allocation_explain_response.rs1use crate::cluster;
12use serde::{Deserialize, Serialize};
13
14
15
16
17#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
18pub struct AllocationExplainResponse {
19 #[serde(rename = "current_state")]
20 pub current_state: String,
21 #[serde(rename = "can_rebalance_cluster_decisions", default, skip_serializing_if = "Option::is_none")]
22 pub can_rebalance_cluster_decisions: Option<Vec<cluster::allocation_explain::AllocationDecision>>,
23 #[serde(rename = "can_allocate", default, skip_serializing_if = "Option::is_none")]
24 pub can_allocate: Option<String>,
25 #[serde(rename = "can_remain_decisions", default, skip_serializing_if = "Option::is_none")]
26 pub can_remain_decisions: Option<Vec<cluster::allocation_explain::AllocationDecision>>,
27 #[serde(rename = "move_explanation", default, skip_serializing_if = "Option::is_none")]
28 pub move_explanation: Option<String>,
29 #[serde(rename = "unassigned_info", default, skip_serializing_if = "Option::is_none")]
30 pub unassigned_info: Option<cluster::allocation_explain::UnassignedInformation>,
31 #[serde(rename = "can_move_to_other_node", default, skip_serializing_if = "Option::is_none")]
32 pub can_move_to_other_node: Option<String>, #[serde(rename = "configured_delay", default, skip_serializing_if = "Option::is_none")]
35 pub configured_delay: Option<String>,
36 #[serde(rename = "allocate_explanation", default, skip_serializing_if = "Option::is_none")]
37 pub allocate_explanation: Option<String>,
38 #[serde(rename = "can_remain_on_current_node", default, skip_serializing_if = "Option::is_none")]
39 pub can_remain_on_current_node: Option<String>,
40 #[serde(rename = "can_rebalance_to_other_node", default, skip_serializing_if = "Option::is_none")]
41 pub can_rebalance_to_other_node: Option<String>,
42 #[serde(rename = "cluster_info", default, skip_serializing_if = "Option::is_none")]
43 pub cluster_info: Option<cluster::allocation_explain::ClusterInfo>,
44 #[serde(rename = "node_allocation_decisions", default, skip_serializing_if = "Option::is_none")]
45 pub node_allocation_decisions: Option<Vec<cluster::allocation_explain::NodeAllocationExplanation>>, #[serde(rename = "allocation_delay", default, skip_serializing_if = "Option::is_none")]
48 pub allocation_delay: Option<String>,
49 #[serde(rename = "allocation_delay_in_millis", default, skip_serializing_if = "Option::is_none")]
50 pub allocation_delay_in_millis: Option<String>,
51 #[serde(rename = "can_rebalance_cluster", default, skip_serializing_if = "Option::is_none")]
52 pub can_rebalance_cluster: Option<String>,
53 #[serde(rename = "note", default, skip_serializing_if = "Option::is_none")]
54 pub note: Option<String>,
55 #[serde(rename = "index")]
56 pub index: String, #[serde(rename = "remaining_delay", default, skip_serializing_if = "Option::is_none")]
59 pub remaining_delay: Option<String>,
60 #[serde(rename = "configured_delay_in_millis", default, skip_serializing_if = "Option::is_none")]
61 pub configured_delay_in_millis: Option<String>,
62 #[serde(rename = "remaining_delay_in_millis", default, skip_serializing_if = "Option::is_none")]
63 pub remaining_delay_in_millis: Option<String>,
64 #[serde(rename = "primary")]
65 pub primary: bool,
66 #[serde(rename = "rebalance_explanation", default, skip_serializing_if = "Option::is_none")]
67 pub rebalance_explanation: Option<String>,
68 #[serde(rename = "current_node", default, skip_serializing_if = "Option::is_none")]
69 pub current_node: Option<cluster::allocation_explain::CurrentNode>,
70 #[serde(rename = "shard")]
71 pub shard: u32,
72}
73
74impl AllocationExplainResponse {
75
76 pub fn new(current_state: String, index: String, primary: bool, shard: u32) -> AllocationExplainResponse {
77 AllocationExplainResponse {
78 current_state,
79 can_rebalance_cluster_decisions: None,
80 can_allocate: None,
81 can_remain_decisions: None,
82 move_explanation: None,
83 unassigned_info: None,
84 can_move_to_other_node: None,
85 configured_delay: None,
86 allocate_explanation: None,
87 can_remain_on_current_node: None,
88 can_rebalance_to_other_node: None,
89 cluster_info: None,
90 node_allocation_decisions: None,
91 allocation_delay: None,
92 allocation_delay_in_millis: None,
93 can_rebalance_cluster: None,
94 note: None,
95 index,
96 remaining_delay: None,
97 configured_delay_in_millis: None,
98 remaining_delay_in_millis: None,
99 primary,
100 rebalance_explanation: None,
101 current_node: None,
102 shard,
103 }
104 }
105}