nomad_client/apis/
nodes_api.rs

1/*
2 * Nomad
3 *
4 * Nomad OpenApi specification
5 *
6 * The version of the OpenAPI document: 0.11.0
7 * 
8 * Generated by: https://openapi-generator.tech
9 */
10
11
12use reqwest;
13
14use crate::apis::ResponseContent;
15use super::{Error, configuration};
16
17
18/// struct for typed errors of method `evaluate_node`
19#[derive(Debug, Clone, Serialize, Deserialize)]
20#[serde(untagged)]
21pub enum EvaluateNodeError {
22    UnknownValue(serde_json::Value),
23}
24
25/// struct for typed errors of method `get_allocations_for_node`
26#[derive(Debug, Clone, Serialize, Deserialize)]
27#[serde(untagged)]
28pub enum GetAllocationsForNodeError {
29    UnknownValue(serde_json::Value),
30}
31
32/// struct for typed errors of method `get_node`
33#[derive(Debug, Clone, Serialize, Deserialize)]
34#[serde(untagged)]
35pub enum GetNodeError {
36    UnknownValue(serde_json::Value),
37}
38
39/// struct for typed errors of method `get_nodes`
40#[derive(Debug, Clone, Serialize, Deserialize)]
41#[serde(untagged)]
42pub enum GetNodesError {
43    UnknownValue(serde_json::Value),
44}
45
46/// struct for typed errors of method `search`
47#[derive(Debug, Clone, Serialize, Deserialize)]
48#[serde(untagged)]
49pub enum SearchError {
50    UnknownValue(serde_json::Value),
51}
52
53/// struct for typed errors of method `update_drain_mode_for_node`
54#[derive(Debug, Clone, Serialize, Deserialize)]
55#[serde(untagged)]
56pub enum UpdateDrainModeForNodeError {
57    UnknownValue(serde_json::Value),
58}
59
60/// struct for typed errors of method `update_node_eligibility`
61#[derive(Debug, Clone, Serialize, Deserialize)]
62#[serde(untagged)]
63pub enum UpdateNodeEligibilityError {
64    UnknownValue(serde_json::Value),
65}
66
67
68pub async fn evaluate_node(configuration: &configuration::Configuration, node_id: &str, namespace: Option<&str>, region: Option<&str>, index: Option<i64>, wait: Option<&str>) -> Result<crate::models::NodeEvalResponse, Error<EvaluateNodeError>> {
69
70    let local_var_client = &configuration.client;
71
72    let local_var_uri_str = format!("{}/node/{node_id}/evaluate", configuration.base_path, node_id=crate::apis::urlencode(node_id));
73    let mut local_var_req_builder = local_var_client.post(local_var_uri_str.as_str());
74
75    if let Some(ref local_var_str) = namespace {
76        local_var_req_builder = local_var_req_builder.query(&[("namespace", &local_var_str.to_string())]);
77    }
78    if let Some(ref local_var_str) = region {
79        local_var_req_builder = local_var_req_builder.query(&[("region", &local_var_str.to_string())]);
80    }
81    if let Some(ref local_var_str) = index {
82        local_var_req_builder = local_var_req_builder.query(&[("index", &local_var_str.to_string())]);
83    }
84    if let Some(ref local_var_str) = wait {
85        local_var_req_builder = local_var_req_builder.query(&[("wait", &local_var_str.to_string())]);
86    }
87    if let Some(ref local_var_user_agent) = configuration.user_agent {
88        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
89    }
90
91    let local_var_req = local_var_req_builder.build()?;
92    let local_var_resp = local_var_client.execute(local_var_req).await?;
93
94    let local_var_status = local_var_resp.status();
95    let local_var_content = local_var_resp.text().await?;
96
97    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
98        serde_json::from_str(&local_var_content).map_err(Error::from)
99    } else {
100        let local_var_entity: Option<EvaluateNodeError> = serde_json::from_str(&local_var_content).ok();
101        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
102        Err(Error::ResponseError(local_var_error))
103    }
104}
105
106/// This can be used to determine what allocations have been scheduled on the node, their current status, and the values of dynamically assigned resources, like ports
107pub async fn get_allocations_for_node(configuration: &configuration::Configuration, node_id: &str, namespace: Option<&str>, region: Option<&str>, index: Option<i64>, wait: Option<&str>) -> Result<Vec<crate::models::AllocationListStub>, Error<GetAllocationsForNodeError>> {
108
109    let local_var_client = &configuration.client;
110
111    let local_var_uri_str = format!("{}/node/{node_id}/allocations", configuration.base_path, node_id=crate::apis::urlencode(node_id));
112    let mut local_var_req_builder = local_var_client.get(local_var_uri_str.as_str());
113
114    if let Some(ref local_var_str) = namespace {
115        local_var_req_builder = local_var_req_builder.query(&[("namespace", &local_var_str.to_string())]);
116    }
117    if let Some(ref local_var_str) = region {
118        local_var_req_builder = local_var_req_builder.query(&[("region", &local_var_str.to_string())]);
119    }
120    if let Some(ref local_var_str) = index {
121        local_var_req_builder = local_var_req_builder.query(&[("index", &local_var_str.to_string())]);
122    }
123    if let Some(ref local_var_str) = wait {
124        local_var_req_builder = local_var_req_builder.query(&[("wait", &local_var_str.to_string())]);
125    }
126    if let Some(ref local_var_user_agent) = configuration.user_agent {
127        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
128    }
129
130    let local_var_req = local_var_req_builder.build()?;
131    let local_var_resp = local_var_client.execute(local_var_req).await?;
132
133    let local_var_status = local_var_resp.status();
134    let local_var_content = local_var_resp.text().await?;
135
136    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
137        serde_json::from_str(&local_var_content).map_err(Error::from)
138    } else {
139        let local_var_entity: Option<GetAllocationsForNodeError> = serde_json::from_str(&local_var_content).ok();
140        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
141        Err(Error::ResponseError(local_var_error))
142    }
143}
144
145pub async fn get_node(configuration: &configuration::Configuration, node_id: &str, namespace: Option<&str>, region: Option<&str>, index: Option<i64>, wait: Option<&str>) -> Result<crate::models::Node, Error<GetNodeError>> {
146
147    let local_var_client = &configuration.client;
148
149    let local_var_uri_str = format!("{}/node/{node_id}", configuration.base_path, node_id=crate::apis::urlencode(node_id));
150    let mut local_var_req_builder = local_var_client.get(local_var_uri_str.as_str());
151
152    if let Some(ref local_var_str) = namespace {
153        local_var_req_builder = local_var_req_builder.query(&[("namespace", &local_var_str.to_string())]);
154    }
155    if let Some(ref local_var_str) = region {
156        local_var_req_builder = local_var_req_builder.query(&[("region", &local_var_str.to_string())]);
157    }
158    if let Some(ref local_var_str) = index {
159        local_var_req_builder = local_var_req_builder.query(&[("index", &local_var_str.to_string())]);
160    }
161    if let Some(ref local_var_str) = wait {
162        local_var_req_builder = local_var_req_builder.query(&[("wait", &local_var_str.to_string())]);
163    }
164    if let Some(ref local_var_user_agent) = configuration.user_agent {
165        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
166    }
167
168    let local_var_req = local_var_req_builder.build()?;
169    let local_var_resp = local_var_client.execute(local_var_req).await?;
170
171    let local_var_status = local_var_resp.status();
172    let local_var_content = local_var_resp.text().await?;
173
174    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
175        serde_json::from_str(&local_var_content).map_err(Error::from)
176    } else {
177        let local_var_entity: Option<GetNodeError> = serde_json::from_str(&local_var_content).ok();
178        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
179        Err(Error::ResponseError(local_var_error))
180    }
181}
182
183pub async fn get_nodes(configuration: &configuration::Configuration, namespace: Option<&str>, region: Option<&str>, index: Option<i64>, wait: Option<&str>, prefix: Option<&str>) -> Result<Vec<crate::models::NodeListStub>, Error<GetNodesError>> {
184
185    let local_var_client = &configuration.client;
186
187    let local_var_uri_str = format!("{}/nodes", configuration.base_path);
188    let mut local_var_req_builder = local_var_client.get(local_var_uri_str.as_str());
189
190    if let Some(ref local_var_str) = namespace {
191        local_var_req_builder = local_var_req_builder.query(&[("namespace", &local_var_str.to_string())]);
192    }
193    if let Some(ref local_var_str) = region {
194        local_var_req_builder = local_var_req_builder.query(&[("region", &local_var_str.to_string())]);
195    }
196    if let Some(ref local_var_str) = index {
197        local_var_req_builder = local_var_req_builder.query(&[("index", &local_var_str.to_string())]);
198    }
199    if let Some(ref local_var_str) = wait {
200        local_var_req_builder = local_var_req_builder.query(&[("wait", &local_var_str.to_string())]);
201    }
202    if let Some(ref local_var_str) = prefix {
203        local_var_req_builder = local_var_req_builder.query(&[("prefix", &local_var_str.to_string())]);
204    }
205    if let Some(ref local_var_user_agent) = configuration.user_agent {
206        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
207    }
208
209    let local_var_req = local_var_req_builder.build()?;
210    let local_var_resp = local_var_client.execute(local_var_req).await?;
211
212    let local_var_status = local_var_resp.status();
213    let local_var_content = local_var_resp.text().await?;
214
215    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
216        serde_json::from_str(&local_var_content).map_err(Error::from)
217    } else {
218        let local_var_entity: Option<GetNodesError> = serde_json::from_str(&local_var_content).ok();
219        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
220        Err(Error::ResponseError(local_var_error))
221    }
222}
223
224/// When using Nomad Enterprise, the allowed contexts include quotas and namespaces. Additionally, a prefix can be searched for within every context
225pub async fn search(configuration: &configuration::Configuration, namespace: Option<&str>, region: Option<&str>, index: Option<i64>, wait: Option<&str>, search_request: Option<crate::models::SearchRequest>) -> Result<crate::models::SearchResponse, Error<SearchError>> {
226
227    let local_var_client = &configuration.client;
228
229    let local_var_uri_str = format!("{}/search", configuration.base_path);
230    let mut local_var_req_builder = local_var_client.post(local_var_uri_str.as_str());
231
232    if let Some(ref local_var_str) = namespace {
233        local_var_req_builder = local_var_req_builder.query(&[("namespace", &local_var_str.to_string())]);
234    }
235    if let Some(ref local_var_str) = region {
236        local_var_req_builder = local_var_req_builder.query(&[("region", &local_var_str.to_string())]);
237    }
238    if let Some(ref local_var_str) = index {
239        local_var_req_builder = local_var_req_builder.query(&[("index", &local_var_str.to_string())]);
240    }
241    if let Some(ref local_var_str) = wait {
242        local_var_req_builder = local_var_req_builder.query(&[("wait", &local_var_str.to_string())]);
243    }
244    if let Some(ref local_var_user_agent) = configuration.user_agent {
245        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
246    }
247    local_var_req_builder = local_var_req_builder.json(&search_request);
248
249    let local_var_req = local_var_req_builder.build()?;
250    let local_var_resp = local_var_client.execute(local_var_req).await?;
251
252    let local_var_status = local_var_resp.status();
253    let local_var_content = local_var_resp.text().await?;
254
255    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
256        serde_json::from_str(&local_var_content).map_err(Error::from)
257    } else {
258        let local_var_entity: Option<SearchError> = serde_json::from_str(&local_var_content).ok();
259        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
260        Err(Error::ResponseError(local_var_error))
261    }
262}
263
264/// When draining is enabled, no further allocations will be assigned to this node, and existing allocations will be migrated to new nodes
265pub async fn update_drain_mode_for_node(configuration: &configuration::Configuration, node_id: &str, namespace: Option<&str>, region: Option<&str>, index: Option<i64>, wait: Option<&str>, node_update_drain_request: Option<crate::models::NodeUpdateDrainRequest>) -> Result<crate::models::NodeDrainUpdateResponse, Error<UpdateDrainModeForNodeError>> {
266
267    let local_var_client = &configuration.client;
268
269    let local_var_uri_str = format!("{}/node/{node_id}/drain", configuration.base_path, node_id=crate::apis::urlencode(node_id));
270    let mut local_var_req_builder = local_var_client.post(local_var_uri_str.as_str());
271
272    if let Some(ref local_var_str) = namespace {
273        local_var_req_builder = local_var_req_builder.query(&[("namespace", &local_var_str.to_string())]);
274    }
275    if let Some(ref local_var_str) = region {
276        local_var_req_builder = local_var_req_builder.query(&[("region", &local_var_str.to_string())]);
277    }
278    if let Some(ref local_var_str) = index {
279        local_var_req_builder = local_var_req_builder.query(&[("index", &local_var_str.to_string())]);
280    }
281    if let Some(ref local_var_str) = wait {
282        local_var_req_builder = local_var_req_builder.query(&[("wait", &local_var_str.to_string())]);
283    }
284    if let Some(ref local_var_user_agent) = configuration.user_agent {
285        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
286    }
287    local_var_req_builder = local_var_req_builder.json(&node_update_drain_request);
288
289    let local_var_req = local_var_req_builder.build()?;
290    let local_var_resp = local_var_client.execute(local_var_req).await?;
291
292    let local_var_status = local_var_resp.status();
293    let local_var_content = local_var_resp.text().await?;
294
295    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
296        serde_json::from_str(&local_var_content).map_err(Error::from)
297    } else {
298        let local_var_entity: Option<UpdateDrainModeForNodeError> = serde_json::from_str(&local_var_content).ok();
299        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
300        Err(Error::ResponseError(local_var_error))
301    }
302}
303
304pub async fn update_node_eligibility(configuration: &configuration::Configuration, node_id: &str, namespace: Option<&str>, region: Option<&str>, index: Option<i64>, wait: Option<&str>, node_update_eligibility_request: Option<crate::models::NodeUpdateEligibilityRequest>) -> Result<crate::models::NodeEligibilityUpdateResponse, Error<UpdateNodeEligibilityError>> {
305
306    let local_var_client = &configuration.client;
307
308    let local_var_uri_str = format!("{}/node/{node_id}/eligibility", configuration.base_path, node_id=crate::apis::urlencode(node_id));
309    let mut local_var_req_builder = local_var_client.post(local_var_uri_str.as_str());
310
311    if let Some(ref local_var_str) = namespace {
312        local_var_req_builder = local_var_req_builder.query(&[("namespace", &local_var_str.to_string())]);
313    }
314    if let Some(ref local_var_str) = region {
315        local_var_req_builder = local_var_req_builder.query(&[("region", &local_var_str.to_string())]);
316    }
317    if let Some(ref local_var_str) = index {
318        local_var_req_builder = local_var_req_builder.query(&[("index", &local_var_str.to_string())]);
319    }
320    if let Some(ref local_var_str) = wait {
321        local_var_req_builder = local_var_req_builder.query(&[("wait", &local_var_str.to_string())]);
322    }
323    if let Some(ref local_var_user_agent) = configuration.user_agent {
324        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
325    }
326    local_var_req_builder = local_var_req_builder.json(&node_update_eligibility_request);
327
328    let local_var_req = local_var_req_builder.build()?;
329    let local_var_resp = local_var_client.execute(local_var_req).await?;
330
331    let local_var_status = local_var_resp.status();
332    let local_var_content = local_var_resp.text().await?;
333
334    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
335        serde_json::from_str(&local_var_content).map_err(Error::from)
336    } else {
337        let local_var_entity: Option<UpdateNodeEligibilityError> = serde_json::from_str(&local_var_content).ok();
338        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
339        Err(Error::ResponseError(local_var_error))
340    }
341}
342