1use crate::{
7 conn::{Headers, Payload},
8 models,
9 opts::{NodeListOpts, NodeUpdateOpts},
10 Result,
11};
12use containers_api::url::encoded_pair;
13
14impl_api_ty!(Node => name);
15
16type Void = ();
17
18impl Node {
19 impl_api_ep! {node: Node, resp
20 Inspect -> &format!("/nodes/{}", node.name), models::Node
21 ForceDelete -> &format!("/nodes/{}", node.name), Void
22 }
23
24 api_doc! { Node => Update
25 |
26 pub async fn update(&self, opts: &NodeUpdateOpts) -> Result<()> {
28 self.docker
29 .post(
30 &format!(
31 "/nodes/{}/update?{}",
32 self.name,
33 encoded_pair("version", opts.version().to_string())
34 ),
35 Payload::Json(opts.serialize_vec()?),
36 Headers::none()
37 )
38 .await
39 .map(|_| ())
40 }}
41}
42
43impl Nodes {
44 impl_api_ep! {node: Node, resp
45 List -> "/nodes", models::Node
46 }
47}